summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar gegy10002018-05-20 12:41:44 +0200
committerGravatar gegy10002018-05-20 12:41:44 +0200
commit2ea0c243fd3ceed585a514dd487ce04866c8aede (patch)
treec5354f4df9f2a796f3d3554c780c74a8f49437cd /src
parentFix parameter name offset (diff)
downloadenigma-2ea0c243fd3ceed585a514dd487ce04866c8aede.tar.gz
enigma-2ea0c243fd3ceed585a514dd487ce04866c8aede.tar.xz
enigma-2ea0c243fd3ceed585a514dd487ce04866c8aede.zip
Fix anonymous class generation
Diffstat (limited to 'src')
-rw-r--r--src/main/java/cuchaz/enigma/Deobfuscator.java2
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java6
-rw-r--r--src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java2
3 files changed, 6 insertions, 4 deletions
diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java
index cb03d45b..cf5d0617 100644
--- a/src/main/java/cuchaz/enigma/Deobfuscator.java
+++ b/src/main/java/cuchaz/enigma/Deobfuscator.java
@@ -284,7 +284,7 @@ public class Deobfuscator {
284 // write the file 284 // write the file
285 File file = new File(dirOut, deobfClassEntry.getName().replace('.', '/') + ".java"); 285 File file = new File(dirOut, deobfClassEntry.getName().replace('.', '/') + ".java");
286 file.getParentFile().mkdirs(); 286 file.getParentFile().mkdirs();
287 try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(file), Charsets.UTF_8)) { 287 try (OutputStreamWriter out = new OutputStreamWriter(new BufferedOutputStream(new FileOutputStream(file)), Charsets.UTF_8)) {
288 out.write(source); 288 out.write(source);
289 } 289 }
290 } catch (Throwable t) { 290 } catch (Throwable t) {
diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java
index 25d523fc..b0d17b3e 100644
--- a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java
+++ b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationClassVisitor.java
@@ -80,7 +80,11 @@ public class TranslationClassVisitor extends ClassVisitor {
80 String childName = translatedName.substring(separatorIndex + 1); 80 String childName = translatedName.substring(separatorIndex + 1);
81 81
82 ClassEntry outerEntry = translator.getTranslatedClass(entryPool.getClass(parentName)); 82 ClassEntry outerEntry = translator.getTranslatedClass(entryPool.getClass(parentName));
83 super.visitInnerClass(translatedName, outerEntry.getName(), childName, translatedEntry.getAccess().getFlags()); 83
84 // Anonymous classes do not specify an outer or inner name. As we do not translate from the given parameter, ignore if the input is null
85 String translatedOuterName = outerName != null ? outerEntry.getName() : null;
86 String translatedInnerName = innerName != null ? childName : null;
87 super.visitInnerClass(translatedName, translatedOuterName, translatedInnerName, translatedEntry.getAccess().getFlags());
84 } 88 }
85 89
86 @Override 90 @Override
diff --git a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java
index 09c106d2..f3f7c486 100644
--- a/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java
+++ b/src/main/java/cuchaz/enigma/bytecode/translators/TranslationMethodVisitor.java
@@ -108,8 +108,6 @@ public class TranslationMethodVisitor extends MethodVisitor {
108 nameBuilder.append(nameIndex); 108 nameBuilder.append(nameIndex);
109 } 109 }
110 translatedName = nameBuilder.toString(); 110 translatedName = nameBuilder.toString();
111 } else {
112 System.out.println();
113 } 111 }
114 112
115 super.visitLocalVariable(translatedName, translatedEntry.getDesc().toString(), translatedSignature, start, end, index); 113 super.visitLocalVariable(translatedName, translatedEntry.getDesc().toString(), translatedSignature, start, end, index);