GP-6286 added check for empty array

This commit is contained in:
ghidra007
2026-01-06 17:22:02 +00:00
parent 03ce9a7ab8
commit d98aa6ffc3
@@ -2381,6 +2381,9 @@ public class RTTIWindowsClassRecoverer extends RTTIClassRecoverer {
Map<Integer, Address> classOffsetToVftableMap = Map<Integer, Address> classOffsetToVftableMap =
recoveredClass.getClassOffsetToVftableMap(); recoveredClass.getClassOffsetToVftableMap();
Set<Integer> classVftableOffsets = classOffsetToVftableMap.keySet(); Set<Integer> classVftableOffsets = classOffsetToVftableMap.keySet();
if (!classVftableOffsets.isEmpty()) {
List<Integer> sortedOffsets = new ArrayList<Integer>(classVftableOffsets); List<Integer> sortedOffsets = new ArrayList<Integer>(classVftableOffsets);
Collections.sort(sortedOffsets); Collections.sort(sortedOffsets);
@@ -2395,6 +2398,7 @@ public class RTTIWindowsClassRecoverer extends RTTIClassRecoverer {
EditStructureUtils.addDataTypeToStructure(classStructureDataType, offset.intValue(), EditStructureUtils.addDataTypeToStructure(classStructureDataType, offset.intValue(),
classVftablePointer, CLASS_VTABLE_PTR_FIELD_EXT, monitor); classVftablePointer, CLASS_VTABLE_PTR_FIELD_EXT, monitor);
} }
}
// add the vbtable structure for single inheritance/virt parent case // add the vbtable structure for single inheritance/virt parent case
if (recoveredClass.hasSingleInheritance() && recoveredClass.inheritsVirtualAncestor()) { if (recoveredClass.hasSingleInheritance() && recoveredClass.inheritsVirtualAncestor()) {