protected void doClear(NavigableMap<Long, JitVal> map, Varnode varnode) {
			AddressSpace space = varnode.getAddress().getAddressSpace();
			long offset = varnode.getOffset();
			int size = varnode.getSize();

			Entry<Long, JitVal> truncLeftEntry = map.lowerEntry(offset);
			if (truncLeftEntry != null && endOf(truncLeftEntry) <= offset) {
				truncLeftEntry = null;
			}
			/**
			 * Collect entry at both ends before removal, in case the clear is cutting a hole in the
			 * middle of one entry. I.e., could be the same entry at both ends.
			 */
			long end = offset + size;
			Entry<Long, JitVal> truncRightEntry = map.lowerEntry(end);
			if (truncRightEntry != null && endOf(truncRightEntry) <= end) {
				truncRightEntry = null;
			}

			/**
			 * Replace the right entry first. If it's the same entry as the left, and we remove by
			 * key, then we might remove the replacement on the left, if it were done first.
			 */
			if (truncRightEntry != null) {
				long entStart = truncRightEntry.getKey();
				map.remove(entStart);
				int shave = (int) (endOf(truncRightEntry) - end);
				JitVal entVal = truncRightEntry.getValue();
				Varnode truncVn = new Varnode(space.getAddress(entStart), entVal.size());
				JitVal truncVal = arithmetic.truncFromLeft(truncVn, shave, entVal);
				map.put(end, truncVal);
			}

			if (truncLeftEntry != null) {
				long entStart = truncLeftEntry.getKey();
				map.remove(entStart);
				int shave = (int) (endOf(truncLeftEntry) - offset);
				JitVal entVal = truncLeftEntry.getValue();
				Varnode truncVn = new Varnode(space.getAddress(entStart), entVal.size());
				JitVal truncVal = arithmetic.truncFromRight(truncVn, shave, entVal);
				map.put(truncLeftEntry.getKey(), truncVal);
			}

			/**
			 * At this point, no part of the ends should be in the key range [start,end), so clear
			 * that submap
			 */
			map.subMap(offset, end).clear();
		}
Clear all definition entries in the given per-space map for the given varnode

<p>
Any entries completely covered by the given varnode (including an exact match) are
removed from the map. Those partially covered will be replaced by subpieces of their
former selves such that no part within the cleared varnode remains defined.

@param map the map to modify
@param varnode the varnode whose definitions to remove
Ghidra/Framework/Emulation/src/main/java/ghidra/pcode/emu/jit/analysis/JitDataFlowState.java