summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/bytecode
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cuchaz/enigma/bytecode')
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java
index 2bb80a8..928c6d1 100644
--- a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java
+++ b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationSignatureVisitor.java
@@ -3,14 +3,12 @@ package cuchaz.enigma.bytecode.translators;
3import org.objectweb.asm.Opcodes; 3import org.objectweb.asm.Opcodes;
4import org.objectweb.asm.signature.SignatureVisitor; 4import org.objectweb.asm.signature.SignatureVisitor;
5 5
6import java.util.Stack;
7import java.util.function.Function; 6import java.util.function.Function;
8 7
9public class TranslationSignatureVisitor extends SignatureVisitor { 8public class TranslationSignatureVisitor extends SignatureVisitor {
10 private final Function<String, String> remapper; 9 private final Function<String, String> remapper;
11 10
12 private final SignatureVisitor sv; 11 private final SignatureVisitor sv;
13 private final Stack<String> classes = new Stack<>();
14 12
15 public TranslationSignatureVisitor(Function<String, String> remapper, SignatureVisitor sv) { 13 public TranslationSignatureVisitor(Function<String, String> remapper, SignatureVisitor sv) {
16 super(Opcodes.ASM5); 14 super(Opcodes.ASM5);
@@ -21,17 +19,13 @@ public class TranslationSignatureVisitor extends SignatureVisitor {
21 @Override 19 @Override
22 public void visitClassType(String name) { 20 public void visitClassType(String name) {
23 String translatedEntry = this.remapper.apply(name); 21 String translatedEntry = this.remapper.apply(name);
24 this.classes.push(name);
25 this.sv.visitClassType(translatedEntry); 22 this.sv.visitClassType(translatedEntry);
26 } 23 }
27 24
28 @Override 25 @Override
29 public void visitInnerClassType(String name) { 26 public void visitInnerClassType(String name) {
30 String outerName = this.classes.pop(); 27 String translatedEntry = this.remapper.apply(name);
31 String className = outerName + "$" + name; 28 this.sv.visitInnerClassType(translatedEntry);
32 this.classes.push(className);
33 String translatedEntry = this.remapper.apply(className);
34 this.sv.visitInnerClassType(translatedEntry.substring(translatedEntry.lastIndexOf('$') + 1));
35 } 29 }
36 30
37 @Override 31 @Override
@@ -111,7 +105,6 @@ public class TranslationSignatureVisitor extends SignatureVisitor {
111 @Override 105 @Override
112 public void visitEnd() { 106 public void visitEnd() {
113 this.sv.visitEnd(); 107 this.sv.visitEnd();
114 this.classes.pop();
115 } 108 }
116 109
117 @Override 110 @Override