summaryrefslogtreecommitdiff
path: root/src/cuchaz
diff options
context:
space:
mode:
authorGravatar jeff2014-09-28 20:27:49 -0400
committerGravatar jeff2014-09-28 20:27:49 -0400
commitfd65d9727ec0f443fd9a1504f9b50bafba1fbd76 (patch)
tree4aef5b0f441df6a25774db3f57a4c11c44b697eb /src/cuchaz
parentfixed a crash parsing method signatures with generics in them (diff)
downloadenigma-fork-fd65d9727ec0f443fd9a1504f9b50bafba1fbd76.tar.gz
enigma-fork-fd65d9727ec0f443fd9a1504f9b50bafba1fbd76.tar.xz
enigma-fork-fd65d9727ec0f443fd9a1504f9b50bafba1fbd76.zip
fixed recognition of static initializer tokens
Diffstat (limited to 'src/cuchaz')
-rw-r--r--src/cuchaz/enigma/Deobfuscator.java1
-rw-r--r--src/cuchaz/enigma/analysis/EntryReference.java2
-rw-r--r--src/cuchaz/enigma/analysis/SourceIndexClassVisitor.java12
3 files changed, 13 insertions, 2 deletions
diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java
index 9235cf7..bd4345e 100644
--- a/src/cuchaz/enigma/Deobfuscator.java
+++ b/src/cuchaz/enigma/Deobfuscator.java
@@ -45,6 +45,7 @@ import cuchaz.enigma.analysis.JarIndex;
45import cuchaz.enigma.analysis.SourceIndex; 45import cuchaz.enigma.analysis.SourceIndex;
46import cuchaz.enigma.analysis.SourceIndexVisitor; 46import cuchaz.enigma.analysis.SourceIndexVisitor;
47import cuchaz.enigma.analysis.Token; 47import cuchaz.enigma.analysis.Token;
48import cuchaz.enigma.analysis.TreeDumpVisitor;
48import cuchaz.enigma.mapping.ArgumentEntry; 49import cuchaz.enigma.mapping.ArgumentEntry;
49import cuchaz.enigma.mapping.BehaviorEntry; 50import cuchaz.enigma.mapping.BehaviorEntry;
50import cuchaz.enigma.mapping.BehaviorEntryFactory; 51import cuchaz.enigma.mapping.BehaviorEntryFactory;
diff --git a/src/cuchaz/enigma/analysis/EntryReference.java b/src/cuchaz/enigma/analysis/EntryReference.java
index df977fb..4da2f58 100644
--- a/src/cuchaz/enigma/analysis/EntryReference.java
+++ b/src/cuchaz/enigma/analysis/EntryReference.java
@@ -20,7 +20,7 @@ import cuchaz.enigma.mapping.Entry;
20 20
21public class EntryReference<E extends Entry, C extends Entry> 21public class EntryReference<E extends Entry, C extends Entry>
22{ 22{
23 private static final List<String> ConstructorNonNames = Arrays.asList( "this", "super" ); 23 private static final List<String> ConstructorNonNames = Arrays.asList( "this", "super", "static" );
24 public E entry; 24 public E entry;
25 public C context; 25 public C context;
26 26
diff --git a/src/cuchaz/enigma/analysis/SourceIndexClassVisitor.java b/src/cuchaz/enigma/analysis/SourceIndexClassVisitor.java
index fc8cd66..24c4822 100644
--- a/src/cuchaz/enigma/analysis/SourceIndexClassVisitor.java
+++ b/src/cuchaz/enigma/analysis/SourceIndexClassVisitor.java
@@ -15,6 +15,7 @@ import com.strobel.assembler.metadata.MethodDefinition;
15import com.strobel.assembler.metadata.TypeDefinition; 15import com.strobel.assembler.metadata.TypeDefinition;
16import com.strobel.assembler.metadata.TypeReference; 16import com.strobel.assembler.metadata.TypeReference;
17import com.strobel.decompiler.languages.TextLocation; 17import com.strobel.decompiler.languages.TextLocation;
18import com.strobel.decompiler.languages.java.ast.AstNode;
18import com.strobel.decompiler.languages.java.ast.ConstructorDeclaration; 19import com.strobel.decompiler.languages.java.ast.ConstructorDeclaration;
19import com.strobel.decompiler.languages.java.ast.EnumValueDeclaration; 20import com.strobel.decompiler.languages.java.ast.EnumValueDeclaration;
20import com.strobel.decompiler.languages.java.ast.FieldDeclaration; 21import com.strobel.decompiler.languages.java.ast.FieldDeclaration;
@@ -74,7 +75,16 @@ public class SourceIndexClassVisitor extends SourceIndexVisitor
74 MethodDefinition def = node.getUserData( Keys.METHOD_DEFINITION ); 75 MethodDefinition def = node.getUserData( Keys.METHOD_DEFINITION );
75 ClassEntry classEntry = new ClassEntry( def.getDeclaringType().getInternalName() ); 76 ClassEntry classEntry = new ClassEntry( def.getDeclaringType().getInternalName() );
76 BehaviorEntry behaviorEntry = BehaviorEntryFactory.create( classEntry, def.getName(), def.getSignature() ); 77 BehaviorEntry behaviorEntry = BehaviorEntryFactory.create( classEntry, def.getName(), def.getSignature() );
77 index.addDeclaration( node.getNameToken(), behaviorEntry ); 78 AstNode tokenNode = node.getNameToken();
79 if( behaviorEntry instanceof ConstructorEntry )
80 {
81 ConstructorEntry constructorEntry = (ConstructorEntry)behaviorEntry;
82 if( constructorEntry.isStatic() )
83 {
84 tokenNode = node.getModifiers().firstOrNullObject();
85 }
86 }
87 index.addDeclaration( tokenNode, behaviorEntry );
78 return node.acceptVisitor( new SourceIndexBehaviorVisitor( behaviorEntry ), index ); 88 return node.acceptVisitor( new SourceIndexBehaviorVisitor( behaviorEntry ), index );
79 } 89 }
80 90