public Data getFirstUndefinedData(AddressSetView set, TaskMonitor monitor) {
		if (set.isEmpty()) {
			return null;
		}
		Memory mem = program.getMemory();
		set = mem.intersect(set);
		if (set.isEmpty()) {
			return null;
		}

		int i = 0;
		CodeUnitIterator it = getCodeUnits(set, true);
		while (it.hasNext()) {
			CodeUnit cu = it.next();
			if (cu instanceof Data && !((Data) cu).isDefined()) {
				return (Data) cu;
			}
			if (++i % 1000 == 0) {
				monitor.setMessage("Searching address " + cu.getMinAddress());
			}
		}
		return null;
	}
Returns the next undefined data whose min address falls within the address set searching in 
the forward direction {@code (e.g., 0 -> 0xfff).}

@param set the address set to look within (required).
@param monitor the current monitor.
@return the first undefined data within the address set, or null if there is none.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/code/CodeManager.java