mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-03 17:59:46 +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()) {
|
||||
|
||||
// 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 =
|
||||
recoveredClass.getParentToBaseTypeMap();
|
||||
Set<RecoveredClass> ancestors = parentToBaseTypeMap.keySet();
|
||||
for (RecoveredClass ancestor : ancestors) {
|
||||
monitor.checkCancelled();
|
||||
if (directParents.contains(ancestor)) {
|
||||
|
||||
Boolean isVirtualParent = parentToBaseTypeMap.get(ancestor);
|
||||
if (isVirtualParent != null && isVirtualParent) {
|
||||
classString = classString.concat(" : virtual " + ancestor.getName());
|
||||
}
|
||||
else {
|
||||
classString = classString.concat(" : " + ancestor.getName());
|
||||
}
|
||||
List<RecoveredClass> parentList = recoveredClass.getParentList();
|
||||
for (RecoveredClass parent : parentList) {
|
||||
monitor.checkCancelled();
|
||||
Boolean isVirtualParent = parentToBaseTypeMap.get(parent);
|
||||
if (isVirtualParent != null && isVirtualParent) {
|
||||
classString = classString.concat(" : virtual " + parent.getName());
|
||||
}
|
||||
else {
|
||||
classString = classString.concat(" : " + parent.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue