diff options
| author | 2014-09-30 00:25:36 -0400 | |
|---|---|---|
| committer | 2014-09-30 00:25:36 -0400 | |
| commit | a83bbfd5c510367a194073b1db132022cacf65ed (patch) | |
| tree | abfd7520b79ef1e64b7430bd81e75a30353b7f14 /src/cuchaz/enigma/mapping/Translator.java | |
| parent | fixed recognition of static initializer tokens (diff) | |
| download | enigma-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.java | 17 |
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 | ||