private static DataType prepareDataType(DataType dt, DataTypeManager destinationDtm,
			DataTypeCleaner dtCleaner, DataTypeConflictHandler conflictHandler) {
		if (dtCleaner != null) {
			dt = dtCleaner.clean(dt);
		}
		if (conflictHandler != DataTypeConflictHandler.DEFAULT_HANDLER) {
			dt = destinationDtm.resolve(dt, conflictHandler);
		}
		return dt;
	}
Updates the destination function so its signature will match the source function's signature
as closely as possible. This method will try to create conflict names if necessary for the
function and its parameters.

@param destinationFunction the destination function to update
@param sourceFunction  the source function to use as a template
@param applyEmptyComposites If true, applied composites will be resolved without their
                       respective components if the type does not already exist in the 
                       destination datatype manager.  If false, normal type resolution 
                       will occur.
@param conflictHandler conflict handler to be used when applying datatypes to the
                       destination program.  If this value is not null or 
                       {@link DataTypeConflictHandler#DEFAULT_HANDLER} the datatypes will be 
                       resolved prior to updating the destinationFunction.  This handler
                       will provide some control over how applied datatype are handled when 
                       they conflict with existing datatypes. 
                       See {@link DataTypeConflictHandler} which provides some predefined
                       handlers.
@throws InvalidInputException if the function name or a variable name is invalid or if a
                       parameter data type is not a fixed length.
@throws DuplicateNameException This shouldn't happen since it will try to create conflict
                       names for the function and its variables if necessary. Otherwise, 
                       this would be because the function's name or a variable name already exists.
@throws CircularDependencyException if namespaces have circular references
Ghidra/Features/Base/src/main/java/ghidra/program/util/FunctionUtility.java