From b19f9e0fd1a5c50dd1ed13dbcb057839c8296f77 Mon Sep 17 00:00:00 2001 From: Thog Date: Mon, 15 May 2017 00:02:18 +0200 Subject: Add offset for Enum constructor arguments (Fix #58) --- .../java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | 5 ++--- src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java | 7 ++++--- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/main/java/cuchaz/enigma/analysis') diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java index 68ca87e..1b61916 100644 --- a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java +++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java @@ -26,7 +26,6 @@ import java.util.HashMap; import java.util.Map; public class SourceIndexBehaviorVisitor extends SourceIndexVisitor { - private BehaviorEntry behaviorEntry; // TODO: Really fix Procyon index problem with inner classes @@ -35,9 +34,9 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor { private Multimap unmatchedIdentifier = HashMultimap.create(); private Map identifierEntryCache = new HashMap<>(); - public SourceIndexBehaviorVisitor(BehaviorEntry behaviorEntry) { + public SourceIndexBehaviorVisitor(BehaviorEntry behaviorEntry, boolean isEnum) { this.behaviorEntry = behaviorEntry; - this.argumentPosition = 0; + this.argumentPosition = isEnum ? 2 : 0; this.localsPosition = 0; } diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java index 1148216..b13415d 100644 --- a/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java +++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexClassVisitor.java @@ -22,6 +22,7 @@ import cuchaz.enigma.mapping.*; public class SourceIndexClassVisitor extends SourceIndexVisitor { private ClassEntry classEntry; + private boolean isEnum; public SourceIndexClassVisitor(ClassEntry classEntry) { this.classEntry = classEntry; @@ -65,7 +66,7 @@ public class SourceIndexClassVisitor extends SourceIndexVisitor { } } index.addDeclaration(tokenNode, behaviorEntry); - return node.acceptVisitor(new SourceIndexBehaviorVisitor(behaviorEntry), index); + return node.acceptVisitor(new SourceIndexBehaviorVisitor(behaviorEntry, false), index); } @Override @@ -73,7 +74,7 @@ public class SourceIndexClassVisitor extends SourceIndexVisitor { MethodDefinition def = node.getUserData(Keys.METHOD_DEFINITION); ConstructorEntry constructorEntry = ProcyonEntryFactory.getConstructorEntry(def); index.addDeclaration(node.getNameToken(), constructorEntry); - return node.acceptVisitor(new SourceIndexBehaviorVisitor(constructorEntry), index); + return node.acceptVisitor(new SourceIndexBehaviorVisitor(constructorEntry, isEnum), index); } @Override @@ -93,7 +94,7 @@ public class SourceIndexClassVisitor extends SourceIndexVisitor { FieldDefinition def = node.getUserData(Keys.FIELD_DEFINITION); FieldEntry fieldEntry = ProcyonEntryFactory.getFieldEntry(def); index.addDeclaration(node.getNameToken(), fieldEntry); - + this.isEnum = true; return recurse(node, index); } } -- cgit v1.2.3