From a83bbfd5c510367a194073b1db132022cacf65ed Mon Sep 17 00:00:00 2001 From: jeff Date: Tue, 30 Sep 2014 00:25:36 -0400 Subject: fixed nasty issue with renaming inner classes, but alas, more bugs remain --- src/cuchaz/enigma/mapping/Translator.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/cuchaz/enigma/mapping/Translator.java') diff --git a/src/cuchaz/enigma/mapping/Translator.java b/src/cuchaz/enigma/mapping/Translator.java index 7904ef5..1c69b2f 100644 --- a/src/cuchaz/enigma/mapping/Translator.java +++ b/src/cuchaz/enigma/mapping/Translator.java @@ -80,19 +80,26 @@ public class Translator { if( in.isInnerClass() ) { - // look for the inner class + // translate the inner class String translatedInnerClassName = m_direction.choose( classMapping.getDeobfInnerClassName( in.getInnerClassName() ), classMapping.getObfInnerClassName( in.getInnerClassName() ) ); if( translatedInnerClassName != null ) { - // return outer$inner + // try to translate the outer name String translatedOuterClassName = m_direction.choose( classMapping.getDeobfName(), classMapping.getObfName() ); - return translatedOuterClassName + "$" + translatedInnerClassName; + if( translatedOuterClassName != null ) + { + return translatedOuterClassName + "$" + translatedInnerClassName; + } + else + { + return in.getOuterClassName() + "$" + translatedInnerClassName; + } } } else @@ -109,6 +116,7 @@ public class Translator public ClassEntry translateEntry( ClassEntry in ) { + // can we translate the inner class? String name = translate( in ); if( name != null ) { @@ -117,13 +125,14 @@ public class Translator if( in.isInnerClass() ) { - // just translate the outer class name + // guess not. just translate the outer class name then String outerClassName = translate( in.getOuterClassEntry() ); if( outerClassName != null ) { return new ClassEntry( outerClassName + "$" + in.getInnerClassName() ); } } + return in; } -- cgit v1.2.3