diff options
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis')
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/JarIndex.java | 16 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/MethodReferenceTreeNode.java | 7 |
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 | ||