private void getDiffs() throws MemoryAccessException {
		init();
		AddressSetView addrSet1 = correlation.getAddresses(LEFT);
		AddressSetView addrSet2 = correlation.getAddresses(RIGHT);
		Listing listing1 = correlation.getProgram(LEFT).getListing();
		Listing listing2 = correlation.getProgram(RIGHT).getListing();
		CodeUnitIterator cuIter1 = listing1.getCodeUnits(addrSet1, true);
		CodeUnitIterator cuIter2 = listing2.getCodeUnits(addrSet2, true);
		for (CodeUnit cu1 : cuIter1) {
			Address min1 = cu1.getMinAddress();
			Address addr2 = correlation.getAddress(RIGHT, min1);
			if (addr2 == null) {
				// Add codeunit1 to the unmatchedDiffs
				unmatchedCode1.addRange(cu1.getMinAddress(), cu1.getMaxAddress());
				continue;
			}
			CodeUnit cu2 = listing2.getCodeUnitAt(addr2);

			getByteDiffs(cu1, cu2, byteDiffs1);

			getCodeUnitDiffs(cu1, cu2, codeUnitDiffs1);
		}
		for (CodeUnit cu2 : cuIter2) {
			Address min2 = cu2.getMinAddress();
			Address addr1 = correlation.getAddress(LEFT, min2);
			if (addr1 == null) {
				// Add codeunit2 to the unmatchedDiffs
				unmatchedCode2.addRange(cu2.getMinAddress(), cu2.getMaxAddress());
				continue;
			}
			CodeUnit cu1 = listing1.getCodeUnitAt(addr1);

			getByteDiffs(cu2, cu1, byteDiffs2);

			getCodeUnitDiffs(cu2, cu1, codeUnitDiffs2);
		}
		notifyListeners();
	}
Determines if this ListingDiff currently has an address correlation to use.
@return true if it has an address correlation currently.
Ghidra/Features/Base/src/main/java/ghidra/program/util/ListingDiff.java