summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/mapping/Translator.java
diff options
context:
space:
mode:
authorGravatar jeff2014-09-30 00:25:36 -0400
committerGravatar jeff2014-09-30 00:25:36 -0400
commita83bbfd5c510367a194073b1db132022cacf65ed (patch)
treeabfd7520b79ef1e64b7430bd81e75a30353b7f14 /src/cuchaz/enigma/mapping/Translator.java
parentfixed recognition of static initializer tokens (diff)
downloadenigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.gz
enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.xz
enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.zip
fixed nasty issue with renaming inner classes, but alas, more bugs remain
Diffstat (limited to 'src/cuchaz/enigma/mapping/Translator.java')
-rw-r--r--src/cuchaz/enigma/mapping/Translator.java17
1 files changed, 13 insertions, 4 deletions
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
80 { 80 {
81 if( in.isInnerClass() ) 81 if( in.isInnerClass() )
82 { 82 {
83 // look for the inner class 83 // translate the inner class
84 String translatedInnerClassName = m_direction.choose( 84 String translatedInnerClassName = m_direction.choose(
85 classMapping.getDeobfInnerClassName( in.getInnerClassName() ), 85 classMapping.getDeobfInnerClassName( in.getInnerClassName() ),
86 classMapping.getObfInnerClassName( in.getInnerClassName() ) 86 classMapping.getObfInnerClassName( in.getInnerClassName() )
87 ); 87 );
88 if( translatedInnerClassName != null ) 88 if( translatedInnerClassName != null )
89 { 89 {
90 // return outer$inner 90 // try to translate the outer name
91 String translatedOuterClassName = m_direction.choose( 91 String translatedOuterClassName = m_direction.choose(
92 classMapping.getDeobfName(), 92 classMapping.getDeobfName(),
93 classMapping.getObfName() 93 classMapping.getObfName()
94 ); 94 );
95 return translatedOuterClassName + "$" + translatedInnerClassName; 95 if( translatedOuterClassName != null )
96 {
97 return translatedOuterClassName + "$" + translatedInnerClassName;
98 }
99 else
100 {
101 return in.getOuterClassName() + "$" + translatedInnerClassName;
102 }
96 } 103 }
97 } 104 }
98 else 105 else
@@ -109,6 +116,7 @@ public class Translator
109 116
110 public ClassEntry translateEntry( ClassEntry in ) 117 public ClassEntry translateEntry( ClassEntry in )
111 { 118 {
119 // can we translate the inner class?
112 String name = translate( in ); 120 String name = translate( in );
113 if( name != null ) 121 if( name != null )
114 { 122 {
@@ -117,13 +125,14 @@ public class Translator
117 125
118 if( in.isInnerClass() ) 126 if( in.isInnerClass() )
119 { 127 {
120 // just translate the outer class name 128 // guess not. just translate the outer class name then
121 String outerClassName = translate( in.getOuterClassEntry() ); 129 String outerClassName = translate( in.getOuterClassEntry() );
122 if( outerClassName != null ) 130 if( outerClassName != null )
123 { 131 {
124 return new ClassEntry( outerClassName + "$" + in.getInnerClassName() ); 132 return new ClassEntry( outerClassName + "$" + in.getInnerClassName() );
125 } 133 }
126 } 134 }
135
127 return in; 136 return in;
128 } 137 }
129 138