diff options
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis/JarIndex.java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/JarIndex.java | 16 |
1 files changed, 15 insertions, 1 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) { |