private AddressRange getAddressRange(DBRecord record) {
		List<AddressRange> ranges = rangeMap.getRangesForRecord(record);
		if (ranges.isEmpty()) {
			return null;
		}

		// Normally, there is only one range for a record. If it is an address wrapping record
		// caused by an image base change, then the record will produce two ranges. While iterating
		// we always want the last (higher) range. 
		AddressRange range = ranges.get(ranges.size() - 1);

		// if there is a "start range" discovered in the constructor and this is the first
		// range we see in the default space (the space with image base), then we need to return
		// the start range and save this record for next time.
		if (startRange != null && hasSameSpace(startRange.getMinAddress(), range.getMinAddress())) {
			range = startRange;
			startRange = null;

			// save current record into next record so we process it again next time
			nextRecord = record;
		}

		return trimRange(range);
	}
Computes an address range for the given record. If a wrapping record (a record whose start
address is greater than its end address, so it really represents two ranges) is encountered,
it only returns the high range. The low range is specially found in the constructor and 
returned before any other ranges in that same address space are returned.
@param record the record to convert to an address range
@return the address range represented by the given record
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/util/AddressRangeMapIterator.java