public List<Symbol> getClassVftableSymbols(Namespace classNamespace) throws CancelledException {

		List<Symbol> vftableSymbols = new ArrayList<Symbol>();

		SymbolIterator symbols = symbolTable.getSymbols(classNamespace);
		List<Address> uniqueVftableAddresses = new ArrayList<>();

		while (symbols.hasNext()) {

			monitor.checkCancelled();
			Symbol symbol = symbols.next();

			// make sure to only keep one vftable symbol per address 
			if (uniqueVftableAddresses.contains(symbol.getAddress())) {
				continue;
			}
			if (symbol.getName().equals("vftable") ||
				symbol.getName().substring(1).startsWith("vftable") ||
				symbol.getName().contains("vftable_for_") ||
				symbol.getName().contains("vftable{for")) {
				vftableSymbols.add(symbol);
				uniqueVftableAddresses.add(symbol.getAddress());
			}

		}
		return vftableSymbols;
	}
Method to retrieve the vftable symbols in the given namespace
@param classNamespace the given namespace
@return a list of vftable symbols in the given namespace
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java