private void findDirectBaseVxtPtrs(VxtManager vxtManager) {
		for (DirectLayoutBaseClass base : directLayoutBaseClasses) {
			CppCompositeType cppBaseType = base.getBaseClassType();
			ClassID baseId = cppBaseType.getClassId();
			long baseOffset = base.getOffset();
			// Note that if the parent has already had its layout done, it will not have
			//  used the vxtManager that we are passing in here; it will have used whatever
			//  was passed to the layout method for that class
			if (cppBaseType.getPropagatedSelfBaseVfts() != null) {
				for (VxtPtrInfo parentInfo : cppBaseType.getPropagatedSelfBaseVfts()) {
					VxtPtrInfo newInfo =
						createSelfOwnedDirectVxtPtrInfo(parentInfo, baseId, baseOffset);
					updateVft(vxtManager, baseId, newInfo, parentInfo);
					storeVxtInfo(propagatedSelfBaseVfts, finalVftPtrInfoByOffset,
						vfTableIdByOffset, vftOffsetByTableId, newInfo);
				}
			}
			if (cppBaseType.getPropagatedSelfBaseVbts() != null) {
				for (VxtPtrInfo parentInfo : cppBaseType.getPropagatedSelfBaseVbts()) {
					VxtPtrInfo newInfo =
						createSelfOwnedDirectVxtPtrInfo(parentInfo, baseId, baseOffset);
					updateVbt(vxtManager, baseId, newInfo, parentInfo);
					storeVxtInfo(propagatedSelfBaseVbts, finalVbtPtrInfoByOffset,
						vbTableIdByOffset, vbtOffsetByTableId, newInfo);
				}
			}
		}
	}
Finds all virtual base and virtual function pointers in the hierarchy of this class's
 self base.
Ghidra/Features/PDB/src/main/java/ghidra/app/util/pdb/pdbapplicator/CppCompositeType.java