mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-04 10:19:23 +02:00
GP-4586 corrected and simplified method to generate class description to
fix order of parents.
This commit is contained in:
parent
90925d10e5
commit
78425f441d
1 changed files with 9 additions and 17 deletions
|
@ -3172,26 +3172,18 @@ public class RecoveredClassHelper {
|
||||||
|
|
||||||
if (recoveredClass.hasParentClass()) {
|
if (recoveredClass.hasParentClass()) {
|
||||||
|
|
||||||
// use this to get direct parents
|
|
||||||
Map<RecoveredClass, List<RecoveredClass>> classHierarchyMap =
|
|
||||||
recoveredClass.getClassHierarchyMap();
|
|
||||||
Set<RecoveredClass> directParents = classHierarchyMap.keySet();
|
|
||||||
|
|
||||||
// use this to get correct parent order and to get the type of parent
|
|
||||||
Map<RecoveredClass, Boolean> parentToBaseTypeMap =
|
Map<RecoveredClass, Boolean> parentToBaseTypeMap =
|
||||||
recoveredClass.getParentToBaseTypeMap();
|
recoveredClass.getParentToBaseTypeMap();
|
||||||
Set<RecoveredClass> ancestors = parentToBaseTypeMap.keySet();
|
|
||||||
for (RecoveredClass ancestor : ancestors) {
|
|
||||||
monitor.checkCancelled();
|
|
||||||
if (directParents.contains(ancestor)) {
|
|
||||||
|
|
||||||
Boolean isVirtualParent = parentToBaseTypeMap.get(ancestor);
|
List<RecoveredClass> parentList = recoveredClass.getParentList();
|
||||||
if (isVirtualParent != null && isVirtualParent) {
|
for (RecoveredClass parent : parentList) {
|
||||||
classString = classString.concat(" : virtual " + ancestor.getName());
|
monitor.checkCancelled();
|
||||||
}
|
Boolean isVirtualParent = parentToBaseTypeMap.get(parent);
|
||||||
else {
|
if (isVirtualParent != null && isVirtualParent) {
|
||||||
classString = classString.concat(" : " + ancestor.getName());
|
classString = classString.concat(" : virtual " + parent.getName());
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
classString = classString.concat(" : " + parent.getName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue