public List<Function> getAncestorDestructors(RecoveredClass recoveredClass)
			throws CancelledException {

		List<Function> allAncestorDestructors = new ArrayList<Function>();

		List<RecoveredClass> classHierarchy = recoveredClass.getClassHierarchy();

		if (classHierarchy == null) {
			Msg.debug(this, recoveredClass.getName() + " has null class hierarchy list");
			return allAncestorDestructors;
		}

		if (classHierarchy.isEmpty()) {
			Msg.debug(this, recoveredClass.getName() + " has empty class hierarchy list");
			return allAncestorDestructors;
		}

		ListIterator<RecoveredClass> classHierarchyIterator = classHierarchy.listIterator(1);

		while (classHierarchyIterator.hasNext()) {
			monitor.checkCancelled();
			RecoveredClass parentClass = classHierarchyIterator.next();

			List<Function> destructorList =
				new ArrayList<Function>(parentClass.getDestructorList());
			destructorList.addAll(parentClass.getInlinedDestructorList());
			for (Function destructor : destructorList) {
				monitor.checkCancelled();
				if (!allAncestorDestructors.contains(destructor)) {
					allAncestorDestructors.add(destructor);
				}
			}
		}
		return allAncestorDestructors;
	}
Method to retrieve a list of destructors for the ancestors of the given class
@param recoveredClass the given class
@return a list of destructors for the ancestors of the given class
@throws CancelledException if cancelled
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RecoveredClassHelper.java