diff options
Diffstat (limited to 'src/main/java/cuchaz/enigma/analysis')
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/MethodImplementationsTreeNode.java | 1 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/analysis/SourceIndexMethodVisitor.java | 12 |
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); |