summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/analysis
diff options
context:
space:
mode:
authorGravatar Adrian Siekierka2018-11-04 12:30:00 +0100
committerGravatar Adrian Siekierka2018-11-04 12:43:47 +0100
commitfb31387fdeedd831b80446afbe7adea719499348 (patch)
tree17e98fc3d73e1fa71d208f77e6a367a5bb0ad96b /src/main/java/cuchaz/enigma/analysis
parenthackfix argument order in inner class constructors. this needs a proper fix (diff)
downloadenigma-fork-fb31387fdeedd831b80446afbe7adea719499348.tar.gz
enigma-fork-fb31387fdeedd831b80446afbe7adea719499348.tar.xz
enigma-fork-fb31387fdeedd831b80446afbe7adea719499348.zip
unify local variable/argument numbering
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis')
-rw-r--r--src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java1
-rw-r--r--src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java12
2 files changed, 3 insertions, 10 deletions
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 {
76 } 76 }
77 77
78 public void load(JarIndex index) { 78 public void load(JarIndex index) {
79
80 // get all method implementations 79 // get all method implementations
81 List<MethodImplementationsTreeNode> nodes = Lists.newArrayList(); 80 List<MethodImplementationsTreeNode> nodes = Lists.newArrayList();
82 for (String implementingClassName : index.getImplementingClasses(this.entry.getClassName())) { 81 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 {
33 33
34 private Multimap<String, Identifier> unmatchedIdentifier = HashMultimap.create(); 34 private Multimap<String, Identifier> unmatchedIdentifier = HashMultimap.create();
35 private Map<String, Entry> identifierEntryCache = new HashMap<>(); 35 private Map<String, Entry> identifierEntryCache = new HashMap<>();
36 private int argumentPosition;
37 36
38 public SourceIndexMethodVisitor(ReferencedEntryPool entryPool, ClassDefEntry ownerEntry, MethodDefEntry methodEntry) { 37 public SourceIndexMethodVisitor(ReferencedEntryPool entryPool, ClassDefEntry ownerEntry, MethodDefEntry methodEntry) {
39 super(entryPool); 38 super(entryPool);
@@ -41,10 +40,6 @@ public class SourceIndexMethodVisitor extends SourceIndexVisitor {
41 this.entryFactory = new ProcyonEntryFactory(entryPool); 40 this.entryFactory = new ProcyonEntryFactory(entryPool);
42 this.ownerEntry = ownerEntry; 41 this.ownerEntry = ownerEntry;
43 this.methodEntry = methodEntry; 42 this.methodEntry = methodEntry;
44 this.argumentPosition = 0;
45 if (ownerEntry.isInnerClass() && methodEntry.isConstructor() && !ownerEntry.getAccess().isStatic()) {
46 this.argumentPosition++;
47 }
48 } 43 }
49 44
50 @Override 45 @Override
@@ -112,9 +107,8 @@ public class SourceIndexMethodVisitor extends SourceIndexVisitor {
112 107
113 @Override 108 @Override
114 public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) { 109 public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) {
115 // DO NOT USE def.getSlot()! Doubleword slots increase by 2, not by 1 110 ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION);
116 111 int parameterIndex = def.getSlot();
117 int parameterIndex = (argumentPosition++);
118 112
119 if (parameterIndex >= 0) { 113 if (parameterIndex >= 0) {
120 LocalVariableEntry localVariableEntry = new LocalVariableEntry(methodEntry, parameterIndex, node.getName()); 114 LocalVariableEntry localVariableEntry = new LocalVariableEntry(methodEntry, parameterIndex, node.getName());
@@ -188,7 +182,7 @@ public class SourceIndexMethodVisitor extends SourceIndexVisitor {
188 if (variable != null) { 182 if (variable != null) {
189 VariableDefinition originalVariable = variable.getOriginalVariable(); 183 VariableDefinition originalVariable = variable.getOriginalVariable();
190 if (originalVariable != null) { 184 if (originalVariable != null) {
191 int variableIndex = (argumentPosition++); 185 int variableIndex = originalVariable.getSlot();
192 if (variableIndex >= 0) { 186 if (variableIndex >= 0) {
193 LocalVariableEntry localVariableEntry = new LocalVariableEntry(methodEntry, variableIndex, initializer.getName()); 187 LocalVariableEntry localVariableEntry = new LocalVariableEntry(methodEntry, variableIndex, initializer.getName());
194 identifierEntryCache.put(identifier.getName(), localVariableEntry); 188 identifierEntryCache.put(identifier.getName(), localVariableEntry);