private void mergeSymbol(Symbol originalOrMySymbol, int chosenConflictOption) {
		long myID = originalOrMySymbol.getID();
		if (chosenConflictOption == REMOVE_MY) {
			long resultID;
			try {
				resultID = myHash.get(myID);
			}
			catch (NoValueException e) {
				myHash.put(myID, -1); // Indicate my symbol was discarded.
				return;
			}
			Symbol resultSymbol = resultSymTab.getSymbol(resultID);
			if (resultSymbol != null) {
				removeMySymbol(resultSymbol, myID);
			}
		}
		else if (chosenConflictOption == RENAME_MY) {
			try {
				myHash.get(myID);
				Msg.error(this, "Error: My symbol '" + originalOrMySymbol.toString() +
					"' has already been merged.");
				return; // Already been merged.
			}
			catch (NoValueException e) {
				// Normally we shouldn't find a mapping of the symbol to be merged.
			}
			try {
				renameToMySymbol(originalOrMySymbol);
			}
			catch (Exception e1) {
				String msg = "Failed to rename '" + originalOrMySymbol.getName(true) + "'.";
				Msg.showError(this, null, "Rename Symbol Error", msg, e1);
			}
		}
	}
Renames the oldSymbol to have a name and namespace equivalent to that of the newSymbol.
@param oldProgram the program containing the old symbol
@param oldSymbol the old symbol
@param newProgram the program containing the new symbol
@param newSymbol the new symbol
@throws DuplicateNameException
@throws InvalidInputException
@throws CircularDependencyException
Ghidra/Features/Base/src/main/java/ghidra/app/merge/listing/SymbolMerger.java