private DataType getResolvedComponent(long compID, Map<Long, DataType> resolvedDataTypes) {
		DataType resolvedDt = resolvedDataTypes.get(compID);
		if (resolvedDt != null) {

			if (resolvedDt.isDeleted()) {
				return null;
			}

			boolean doCheck = false;
			DataType baseDt = resolvedDt;
			if (baseDt instanceof TypeDef td) {
				baseDt = td.getDataType();
				doCheck = true;
			}
			if ((baseDt instanceof Pointer) || (baseDt instanceof Array)) {
				baseDt = DataTypeUtilities.getBaseDataType(baseDt);
				doCheck = true;
			}

			if (doCheck) {
				if (baseDt != null && baseDt != DataType.DEFAULT) {
					DataTypeManager dtm = baseDt.getDataTypeManager();
					long baseID = dtm.getID(baseDt);
					if (!myDtAddedList.contains(Long.valueOf(baseID))) {
						DataType baseResultDt = dtms[RESULT].getDataType(baseID);
						if (baseResultDt == null || baseResultDt.isDeleted()) {
							return null; // base data type was deleted
						}
					}
				}
			}
			// else resolvedDataTypes was already updated if the component was deleted
		}
		return resolvedDt;
	}
Get a previously resolved datatype.
@param compID datatype ID
@param resolvedDataTypes resolved datatype map
@return resolved datatype or null if noth resolved or a critical dependency has been deleted
Ghidra/Features/Base/src/main/java/ghidra/app/merge/datatypes/DataTypeMergeManager.java