From 9809078524bd3bd40fbf7aa411f6e0dca02fd009 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 25 Feb 2015 22:42:34 -0500 Subject: fixed lots of issues with inner class reconstruction, particularly for inner class trees also fixed lots of issues with reading jars that aren't Minecraft. =P --- src/cuchaz/enigma/mapping/EntryFactory.java | 34 ++--------------------------- 1 file changed, 2 insertions(+), 32 deletions(-) (limited to 'src/cuchaz/enigma/mapping/EntryFactory.java') diff --git a/src/cuchaz/enigma/mapping/EntryFactory.java b/src/cuchaz/enigma/mapping/EntryFactory.java index bbdfa73..f4d62c8 100644 --- a/src/cuchaz/enigma/mapping/EntryFactory.java +++ b/src/cuchaz/enigma/mapping/EntryFactory.java @@ -1,7 +1,5 @@ package cuchaz.enigma.mapping; -import java.util.List; - import javassist.CtBehavior; import javassist.CtClass; import javassist.CtConstructor; @@ -13,7 +11,6 @@ import javassist.expr.FieldAccess; import javassist.expr.MethodCall; import javassist.expr.NewExpr; -import com.beust.jcommander.internal.Lists; import com.strobel.assembler.metadata.MethodDefinition; import cuchaz.enigma.analysis.JarIndex; @@ -25,35 +22,8 @@ public class EntryFactory { } public static ClassEntry getObfClassEntry(JarIndex jarIndex, ClassMapping classMapping) { - return getChainedOuterClassName(jarIndex, new ClassEntry(classMapping.getObfFullName())); - } - - public static ClassEntry getChainedOuterClassName(JarIndex jarIndex, ClassEntry obfClassEntry) { - - // lookup the chain of outer classes - List obfClassChain = Lists.newArrayList(obfClassEntry); - ClassEntry checkClassEntry = obfClassEntry; - while (true) { - ClassEntry obfOuterClassEntry = jarIndex.getOuterClass(checkClassEntry); - if (obfOuterClassEntry != null) { - obfClassChain.add(obfOuterClassEntry); - checkClassEntry = obfOuterClassEntry; - } else { - break; - } - } - - // build the chained class name - StringBuilder buf = new StringBuilder(); - for (int i=obfClassChain.size()-1; i>=0; i--) { - if (buf.length() == 0) { - buf.append(obfClassChain.get(i).getName()); - } else { - buf.append("$"); - buf.append(obfClassChain.get(i).getSimpleName()); - } - } - return new ClassEntry(buf.toString()); + ClassEntry obfClassEntry = new ClassEntry(classMapping.getObfFullName()); + return obfClassEntry.buildClassEntry(jarIndex.getObfClassChain(obfClassEntry)); } public static ClassEntry getDeobfClassEntry(ClassMapping classMapping) { -- cgit v1.2.3