private DataType createPointer(long id, Pointer pointerDt,
			MyIdentityHashMap<Long, DataType> resolvedDataTypes) {
		DataType innerDt = pointerDt.getDataType();
		if (innerDt == DataType.DEFAULT || innerDt == null) {
			return pointerDt;
		}
		DataType resolvedDt = getResolvedBaseType(id, pointerDt, resolvedDataTypes);
		if (resolvedDt != null) {
			if ((innerDt instanceof Pointer) || (innerDt instanceof Array) ||
				(innerDt instanceof TypeDef)) {
				resolvedDt = addDataType(innerDt.getDataTypeManager().getID(innerDt), innerDt,
					resolvedDataTypes);
			}
			if (resolvedDt != null) {
				return PointerDataType.getPointer(resolvedDt,
					pointerDt.hasLanguageDependantLength() ? -1 : pointerDt.getLength());
			}
		}
		return null;
	}
Get the resolved data type from the given table;
If the data type has not been resolved yet, then use the one from
the results if the id was not added in MY program.
@param id id of data type
@param dt the data type
@return resolved data type that corresponds to id
Ghidra/Features/Base/src/main/java/ghidra/app/merge/datatypes/DataTypeMergeManager.java