From fd65d9727ec0f443fd9a1504f9b50bafba1fbd76 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 28 Sep 2014 20:27:49 -0400 Subject: fixed recognition of static initializer tokens --- src/cuchaz/enigma/analysis/SourceIndexClassVisitor.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/cuchaz/enigma/analysis/SourceIndexClassVisitor.java') 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; import com.strobel.assembler.metadata.TypeDefinition; import com.strobel.assembler.metadata.TypeReference; import com.strobel.decompiler.languages.TextLocation; +import com.strobel.decompiler.languages.java.ast.AstNode; import com.strobel.decompiler.languages.java.ast.ConstructorDeclaration; import com.strobel.decompiler.languages.java.ast.EnumValueDeclaration; import com.strobel.decompiler.languages.java.ast.FieldDeclaration; @@ -74,7 +75,16 @@ public class SourceIndexClassVisitor extends SourceIndexVisitor MethodDefinition def = node.getUserData( Keys.METHOD_DEFINITION ); ClassEntry classEntry = new ClassEntry( def.getDeclaringType().getInternalName() ); BehaviorEntry behaviorEntry = BehaviorEntryFactory.create( classEntry, def.getName(), def.getSignature() ); - index.addDeclaration( node.getNameToken(), behaviorEntry ); + AstNode tokenNode = node.getNameToken(); + if( behaviorEntry instanceof ConstructorEntry ) + { + ConstructorEntry constructorEntry = (ConstructorEntry)behaviorEntry; + if( constructorEntry.isStatic() ) + { + tokenNode = node.getModifiers().firstOrNullObject(); + } + } + index.addDeclaration( tokenNode, behaviorEntry ); return node.acceptVisitor( new SourceIndexBehaviorVisitor( behaviorEntry ), index ); } -- cgit v1.2.3