public void determineOperatorDeleteAndNewFunctions(List<Address> vftables)
			throws CancelledException {

		Set<Function> twoCallCommonFunctions = getTwoCallCommonFunctionsUsingVftables(vftables);

		Set<Function> allPossibleConstructorDestructors = null;

		// try finding operator delete functions by name or if can't, by common function calls
		Set<Function> operatorDeletesSet = findOperatorDeletes();
		if (operatorDeletesSet.isEmpty()) {

			allPossibleConstructorDestructors = getAllPossibleConstructorDestructors(vftables);

			operatorDeletesSet = findOperatorDeletesUsingCalledCommonFunction(
				allPossibleConstructorDestructors, twoCallCommonFunctions, vftables);
		}

		operatorDeletes = new ArrayList<Function>(operatorDeletesSet);

		for (Function operatorDeleteFunction : operatorDeletes) {
			monitor.checkCancelled();

			bookmarkAddress(operatorDeleteFunction.getEntryPoint(), "operator_delete function",
				"operator_delete identification");
		}

		// try finding operator new functions by name or if can't, by common function calls
		Set<Function> operatorNewsSet = findOperatorNews();
		if (operatorNewsSet.isEmpty()) {
			if (allPossibleConstructorDestructors == null) {
				allPossibleConstructorDestructors = getAllPossibleConstructorDestructors(vftables);
			}
			operatorNewsSet = findOperatorNewsUsingCalledCommonFunction(
				allPossibleConstructorDestructors, twoCallCommonFunctions, vftables);
		}
		operatorNews = new ArrayList<Function>(operatorNewsSet);

		for (Function operatorNewFunction : operatorNews) {
			monitor.checkCancelled();

			bookmarkAddress(operatorNewFunction.getEntryPoint(), "operator_new function",
				"operator_new identification");
		}

		return;
	}
Method to find the operator delete and operator new functions in the current program 
either by name or by common virtual function calls
@param vftables a list of vftables
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java