@Override
	protected boolean join(SubMemoryBlock block) throws IOException {
		if (!(block instanceof FileBytesSubMemoryBlock)) {
			return false;
		}
		FileBytesSubMemoryBlock other = (FileBytesSubMemoryBlock) block;
		if (fileBytes != other.fileBytes) {
			return false;
		}
		// are the two block consecutive in the fileBytes space?
		if (other.fileBytesOffset != fileBytesOffset + subBlockLength) {
			return false;
		}
		// ok we can join them
		setLength(subBlockLength + other.subBlockLength);
		adapter.deleteSubBlock(other.record.getKey());
		return true;
	}
Class for handling {@link FileBytes} memory sub blocks (blocks whose bytes are backed by a FileBytes object
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/mem/FileBytesSubMemoryBlock.java