private long getLength(int i, List<SourceFileAddr> allSFA) {
		SourceFileAddr iAddr = allSFA.get(i);
		long iOffset = iAddr.address();
		for (int j = i + 1; j < allSFA.size(); j++) {
			SourceFileAddr current = allSFA.get(j);
			long currentAddr = current.address();
			if (current.isEndSequence()) {
				return currentAddr + 1 - iOffset;
			}
			if (currentAddr != iOffset) {
				return currentAddr - iOffset;
			}
		}
		return -1;
	}
In the DWARF format, source line info is only recorded for an address x
if the info for x differs from the info for address x-1.
To calculate the length of a source map entry, we need to look for the next
SourceFileAddr with a different address (there can be multiple records per address
so there's no guarantee that the SourceFileAddr at position i+1 has a different 
address). Special end-of-sequence markers are used to mark the end of a function,
so if we find one of these we stop searching.  These markers have their addresses tweaked 
by one, which we undo (see {@link DWARFLineProgramExecutor#executeExtended}).
@param i starting index
@param allSFA sorted list of SourceFileAddr
@return computed length or -1 on error
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DWARFImporter.java