From 5eeee98418bb39367258442a82b75a081a6f91e0 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 1 Oct 2014 00:04:18 -0400 Subject: fixed inner class renaming bug also added smarter sorting to class mappings --- src/cuchaz/enigma/mapping/ClassMapping.java | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'src/cuchaz/enigma/mapping/ClassMapping.java') diff --git a/src/cuchaz/enigma/mapping/ClassMapping.java b/src/cuchaz/enigma/mapping/ClassMapping.java index ee02781..e084d4d 100644 --- a/src/cuchaz/enigma/mapping/ClassMapping.java +++ b/src/cuchaz/enigma/mapping/ClassMapping.java @@ -117,6 +117,16 @@ public class ClassMapping implements Serializable, Comparable return m_innerClassesByDeobf.get( deobfName ); } + public ClassMapping getInnerClassByDeobfThenObf( String name ) + { + ClassMapping classMapping = getInnerClassByDeobf( name ); + if( classMapping == null ) + { + classMapping = getInnerClassByObf( name ); + } + return classMapping; + } + public String getObfInnerClassName( String deobfName ) { assert( isSimpleClassName( deobfName ) ); @@ -392,9 +402,18 @@ public class ClassMapping implements Serializable, Comparable buf.append( "\n" ); } buf.append( "Methods:\n" ); - for( MethodMapping methodIndex : m_methodsByObf.values() ) + for( MethodMapping methodMapping : m_methodsByObf.values() ) { - buf.append( methodIndex.toString() ); + buf.append( methodMapping.toString() ); + buf.append( "\n" ); + } + buf.append( "Inner Classes:\n" ); + for( ClassMapping classMapping : m_innerClassesByObf.values() ) + { + buf.append( "\t" ); + buf.append( classMapping.getObfName() ); + buf.append( " <-> " ); + buf.append( classMapping.getDeobfName() ); buf.append( "\n" ); } return buf.toString(); @@ -403,6 +422,11 @@ public class ClassMapping implements Serializable, Comparable @Override public int compareTo( ClassMapping other ) { + // sort by a, b, c, ... aa, ab, etc + if( m_obfName.length() != other.m_obfName.length() ) + { + return m_obfName.length() - other.m_obfName.length(); + } return m_obfName.compareTo( other.m_obfName ); } -- cgit v1.2.3