From cfbb0efbff7c0fb2128fea25c2e15f4f911077c1 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Mon, 12 Sep 2016 15:17:04 +0200 Subject: fix method/argument renaming edge cases, add method/argument name rebuilder, add Package to Access enum --- src/main/java/cuchaz/enigma/analysis/JarIndex.java | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/main/java/cuchaz/enigma/analysis/JarIndex.java') diff --git a/src/main/java/cuchaz/enigma/analysis/JarIndex.java b/src/main/java/cuchaz/enigma/analysis/JarIndex.java index 851f3fa..e501540 100644 --- a/src/main/java/cuchaz/enigma/analysis/JarIndex.java +++ b/src/main/java/cuchaz/enigma/analysis/JarIndex.java @@ -38,6 +38,7 @@ public class JarIndex { private Map outerClassesByInner; private Map anonymousClasses; private Map bridgedMethods; + private Set syntheticMethods; public JarIndex() { this.obfClassEntries = Sets.newHashSet(); @@ -52,6 +53,7 @@ public class JarIndex { this.outerClassesByInner = Maps.newHashMap(); this.anonymousClasses = Maps.newHashMap(); this.bridgedMethods = Maps.newHashMap(); + this.syntheticMethods = Sets.newHashSet(); } public void indexJar(JarFile jar, boolean buildInnerClasses) { @@ -155,6 +157,11 @@ public class JarIndex { if (behaviorEntry instanceof MethodEntry) { MethodEntry methodEntry = (MethodEntry) behaviorEntry; + // is synthetic + if ((behavior.getModifiers() & AccessFlag.SYNTHETIC) != 0) { + syntheticMethods.add(methodEntry); + } + // index implementation this.methodImplementations.put(behaviorEntry.getClassName(), methodEntry); @@ -720,6 +727,10 @@ public class JarIndex { return this.anonymousClasses.containsKey(obfInnerClassEntry); } + public boolean isSyntheticMethod(MethodEntry methodEntry) { + return this.syntheticMethods.contains(methodEntry); + } + public BehaviorEntry getAnonymousClassCaller(ClassEntry obfInnerClassName) { return this.anonymousClasses.get(obfInnerClassName); } -- cgit v1.2.3