From fb31387fdeedd831b80446afbe7adea719499348 Mon Sep 17 00:00:00 2001 From: Adrian Siekierka Date: Sun, 4 Nov 2018 12:30:00 +0100 Subject: unify local variable/argument numbering --- .../enigma/analysis/MethodImplementationsTreeNode.java | 1 - .../cuchaz/enigma/analysis/SourceIndexMethodVisitor.java | 12 +++--------- 2 files changed, 3 insertions(+), 10 deletions(-) (limited to 'src/main/java/cuchaz/enigma/analysis') diff --git a/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java b/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java index 723fffe..4b47c5f 100644 --- a/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java +++ b/src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java @@ -76,7 +76,6 @@ public class MethodImplementationsTreeNode extends DefaultMutableTreeNode { } public void load(JarIndex index) { - // get all method implementations List nodes = Lists.newArrayList(); for (String implementingClassName : index.getImplementingClasses(this.entry.getClassName())) { diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java index d88eae3..45f7a0e 100644 --- a/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java +++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java @@ -33,7 +33,6 @@ public class SourceIndexMethodVisitor extends SourceIndexVisitor { private Multimap unmatchedIdentifier = HashMultimap.create(); private Map identifierEntryCache = new HashMap<>(); - private int argumentPosition; public SourceIndexMethodVisitor(ReferencedEntryPool entryPool, ClassDefEntry ownerEntry, MethodDefEntry methodEntry) { super(entryPool); @@ -41,10 +40,6 @@ public class SourceIndexMethodVisitor extends SourceIndexVisitor { this.entryFactory = new ProcyonEntryFactory(entryPool); this.ownerEntry = ownerEntry; this.methodEntry = methodEntry; - this.argumentPosition = 0; - if (ownerEntry.isInnerClass() && methodEntry.isConstructor() && !ownerEntry.getAccess().isStatic()) { - this.argumentPosition++; - } } @Override @@ -112,9 +107,8 @@ public class SourceIndexMethodVisitor extends SourceIndexVisitor { @Override public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) { - // DO NOT USE def.getSlot()! Doubleword slots increase by 2, not by 1 - - int parameterIndex = (argumentPosition++); + ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION); + int parameterIndex = def.getSlot(); if (parameterIndex >= 0) { LocalVariableEntry localVariableEntry = new LocalVariableEntry(methodEntry, parameterIndex, node.getName()); @@ -188,7 +182,7 @@ public class SourceIndexMethodVisitor extends SourceIndexVisitor { if (variable != null) { VariableDefinition originalVariable = variable.getOriginalVariable(); if (originalVariable != null) { - int variableIndex = (argumentPosition++); + int variableIndex = originalVariable.getSlot(); if (variableIndex >= 0) { LocalVariableEntry localVariableEntry = new LocalVariableEntry(methodEntry, variableIndex, initializer.getName()); identifierEntryCache.put(identifier.getName(), localVariableEntry); -- cgit v1.2.3