summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/analysis
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/JarIndex.java16
-rw-r--r--src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java7
2 files changed, 21 insertions, 2 deletions
diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
index 820ecbb..361c8e7 100644
--- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java
+++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java
@@ -447,8 +447,22 @@ public class JarIndex {
447 return this.methodsReferencingClasses.get(classEntry); 447 return this.methodsReferencingClasses.get(classEntry);
448 } 448 }
449 449
450 @Deprecated
450 public Collection<EntryReference<MethodEntry, MethodDefEntry>> getMethodsReferencing(MethodEntry methodEntry) { 451 public Collection<EntryReference<MethodEntry, MethodDefEntry>> getMethodsReferencing(MethodEntry methodEntry) {
451 return this.methodsReferencing.get(methodEntry); 452 return getMethodsReferencing(methodEntry, false);
453 }
454
455 public Collection<EntryReference<MethodEntry, MethodDefEntry>> getMethodsReferencing(MethodEntry methodEntry, boolean recurse) {
456 if (!recurse) {
457 return this.methodsReferencing.get(methodEntry);
458 }
459
460 List<EntryReference<MethodEntry, MethodDefEntry>> references = new ArrayList<>();
461 Set<MethodEntry> methodEntries = getRelatedMethodImplementations(methodEntry);
462 for (MethodEntry entry : methodEntries) {
463 references.addAll(getMethodsReferencing(entry, false));
464 }
465 return references;
452 } 466 }
453 467
454 public Collection<MethodEntry> getReferencedMethods(MethodDefEntry methodEntry) { 468 public Collection<MethodEntry> getReferencedMethods(MethodDefEntry methodEntry) {
diff --git a/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java b/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
index 0eae5cc..ac05acd 100644
--- a/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
+++ b/src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java
@@ -63,9 +63,14 @@ public class MethodReferenceTreeNode extends DefaultMutableTreeNode
63 return this.deobfuscatingTranslator.getTranslatedMethod(this.entry).getName(); 63 return this.deobfuscatingTranslator.getTranslatedMethod(this.entry).getName();
64 } 64 }
65 65
66 @Deprecated
66 public void load(JarIndex index, boolean recurse) { 67 public void load(JarIndex index, boolean recurse) {
68 load(index, recurse, false);
69 }
70
71 public void load(JarIndex index, boolean recurse, boolean recurseMethod) {
67 // get all the child nodes 72 // get all the child nodes
68 for (EntryReference<MethodEntry, MethodDefEntry> reference : index.getMethodsReferencing(this.entry)) { 73 for (EntryReference<MethodEntry, MethodDefEntry> reference : index.getMethodsReferencing(this.entry, recurseMethod)) {
69 add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.entry))); 74 add(new MethodReferenceTreeNode(this.deobfuscatingTranslator, reference, index.getAccessFlags(this.entry)));
70 } 75 }
71 76