private List<SpecialVtable> findSpecialVtables(List<GccTypeinfo> specialTypeinfos)
			throws Exception {

		List<SpecialVtable> specialVtables = new ArrayList<SpecialVtable>();

		Map<String, String> namespaceMap = new HashMap<String, String>();
		namespaceMap.put(CLASS_TYPEINFO_NAMESPACE, MANGLED_CLASS_TYPEINFO_NAMESPACE);
		namespaceMap.put(SI_CLASS_TYPEINFO_NAMESPACE, MANGLED_SI_CLASS_TYPEINFO_NAMESPACE);
		namespaceMap.put(VMI_CLASS_TYPEINFO_NAMESPACE, MANGLED_VMI_CLASS_TYPEINFO_NAMESPACE);

		for (String namespaceName : namespaceMap.keySet()) {

			GccTypeinfo specTypeinfo = getSpecialTypeinfo(specialTypeinfos, namespaceName);

			Address vtableAddress = findSpecialVtableAddress(namespaceName,
				namespaceMap.get(namespaceName), specialTypeinfos);
			if (vtableAddress == null) {
				continue;
			}

			SpecialVtable specialVtable =
				createSpecialVtable(vtableAddress, specTypeinfo);
			specialVtables.add(specialVtable);

		}
		return specialVtables;
	}
Method to add parents to the given class

@param recoveredClass  the given class
@param typeinfo the GccTypeinfo object for this class
@return list of parents for the given class
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RTTIGccClassRecoverer.java