diff options
| author | 2014-08-21 01:10:37 -0400 | |
|---|---|---|
| committer | 2014-08-21 01:10:37 -0400 | |
| commit | 237b2ed2a6b6f537cdbdf9fc9c6d0c7743f34375 (patch) | |
| tree | ebad059c7fa0bc7723858cb25eed0bb6e95fe42a /src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | |
| parent | fixed recognition of inner class tokens (diff) | |
| download | enigma-fork-237b2ed2a6b6f537cdbdf9fc9c6d0c7743f34375.tar.gz enigma-fork-237b2ed2a6b6f537cdbdf9fc9c6d0c7743f34375.tar.xz enigma-fork-237b2ed2a6b6f537cdbdf9fc9c6d0c7743f34375.zip | |
fixed call graph searching
added system to navigate multiple tokens for the same entry in a behavior
Diffstat (limited to 'src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java')
| -rw-r--r-- | src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java index d3386c5..a943858 100644 --- a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java +++ b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | |||
| @@ -10,8 +10,6 @@ | |||
| 10 | ******************************************************************************/ | 10 | ******************************************************************************/ |
| 11 | package cuchaz.enigma.analysis; | 11 | package cuchaz.enigma.analysis; |
| 12 | 12 | ||
| 13 | import com.google.common.collect.HashMultiset; | ||
| 14 | import com.google.common.collect.Multiset; | ||
| 15 | import com.strobel.assembler.metadata.MemberReference; | 13 | import com.strobel.assembler.metadata.MemberReference; |
| 16 | import com.strobel.assembler.metadata.MethodDefinition; | 14 | import com.strobel.assembler.metadata.MethodDefinition; |
| 17 | import com.strobel.assembler.metadata.ParameterDefinition; | 15 | import com.strobel.assembler.metadata.ParameterDefinition; |
| @@ -36,12 +34,10 @@ import cuchaz.enigma.mapping.MethodEntry; | |||
| 36 | public class SourceIndexBehaviorVisitor extends SourceIndexVisitor | 34 | public class SourceIndexBehaviorVisitor extends SourceIndexVisitor |
| 37 | { | 35 | { |
| 38 | private BehaviorEntry m_behaviorEntry; | 36 | private BehaviorEntry m_behaviorEntry; |
| 39 | private Multiset<Entry> m_indices; | ||
| 40 | 37 | ||
| 41 | public SourceIndexBehaviorVisitor( BehaviorEntry behaviorEntry ) | 38 | public SourceIndexBehaviorVisitor( BehaviorEntry behaviorEntry ) |
| 42 | { | 39 | { |
| 43 | m_behaviorEntry = behaviorEntry; | 40 | m_behaviorEntry = behaviorEntry; |
| 44 | m_indices = HashMultiset.create(); | ||
| 45 | } | 41 | } |
| 46 | 42 | ||
| 47 | @Override | 43 | @Override |
| @@ -64,10 +60,9 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor | |||
| 64 | MethodEntry methodEntry = new MethodEntry( classEntry, ref.getName(), ref.getSignature() ); | 60 | MethodEntry methodEntry = new MethodEntry( classEntry, ref.getName(), ref.getSignature() ); |
| 65 | if( node.getTarget() instanceof MemberReferenceExpression ) | 61 | if( node.getTarget() instanceof MemberReferenceExpression ) |
| 66 | { | 62 | { |
| 67 | m_indices.add( methodEntry ); | ||
| 68 | index.addReference( | 63 | index.addReference( |
| 69 | ((MemberReferenceExpression)node.getTarget()).getMemberNameToken(), | 64 | ((MemberReferenceExpression)node.getTarget()).getMemberNameToken(), |
| 70 | new EntryReference<Entry,Entry>( methodEntry, m_behaviorEntry, m_indices.count( methodEntry ) ) | 65 | new EntryReference<Entry,Entry>( methodEntry, m_behaviorEntry ) |
| 71 | ); | 66 | ); |
| 72 | } | 67 | } |
| 73 | 68 | ||
| @@ -82,10 +77,9 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor | |||
| 82 | { | 77 | { |
| 83 | ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); | 78 | ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); |
| 84 | FieldEntry fieldEntry = new FieldEntry( classEntry, ref.getName() ); | 79 | FieldEntry fieldEntry = new FieldEntry( classEntry, ref.getName() ); |
| 85 | m_indices.add( fieldEntry ); | ||
| 86 | index.addReference( | 80 | index.addReference( |
| 87 | node.getMemberNameToken(), | 81 | node.getMemberNameToken(), |
| 88 | new EntryReference<Entry,Entry>( fieldEntry, m_behaviorEntry, m_indices.count( fieldEntry ) ) | 82 | new EntryReference<Entry,Entry>( fieldEntry, m_behaviorEntry ) |
| 89 | ); | 83 | ); |
| 90 | } | 84 | } |
| 91 | 85 | ||
| @@ -99,10 +93,9 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor | |||
| 99 | if( node.getIdentifierToken().getStartLocation() != TextLocation.EMPTY ) | 93 | if( node.getIdentifierToken().getStartLocation() != TextLocation.EMPTY ) |
| 100 | { | 94 | { |
| 101 | ClassEntry classEntry = new ClassEntry( ref.getInternalName() ); | 95 | ClassEntry classEntry = new ClassEntry( ref.getInternalName() ); |
| 102 | m_indices.add( classEntry ); | ||
| 103 | index.addReference( | 96 | index.addReference( |
| 104 | node.getIdentifierToken(), | 97 | node.getIdentifierToken(), |
| 105 | new EntryReference<Entry,Entry>( classEntry, m_behaviorEntry, m_indices.count( classEntry ) ) | 98 | new EntryReference<Entry,Entry>( classEntry, m_behaviorEntry ) |
| 106 | ); | 99 | ); |
| 107 | } | 100 | } |
| 108 | 101 | ||
| @@ -130,10 +123,9 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor | |||
| 130 | { | 123 | { |
| 131 | ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); | 124 | ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); |
| 132 | FieldEntry fieldEntry = new FieldEntry( classEntry, ref.getName() ); | 125 | FieldEntry fieldEntry = new FieldEntry( classEntry, ref.getName() ); |
| 133 | m_indices.add( fieldEntry ); | ||
| 134 | index.addReference( | 126 | index.addReference( |
| 135 | node.getIdentifierToken(), | 127 | node.getIdentifierToken(), |
| 136 | new EntryReference<Entry,Entry>( fieldEntry, m_behaviorEntry, m_indices.count( fieldEntry ) ) | 128 | new EntryReference<Entry,Entry>( fieldEntry, m_behaviorEntry ) |
| 137 | ); | 129 | ); |
| 138 | } | 130 | } |
| 139 | 131 | ||