summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
diff options
context:
space:
mode:
authorGravatar jeff2014-08-21 01:10:37 -0400
committerGravatar jeff2014-08-21 01:10:37 -0400
commit237b2ed2a6b6f537cdbdf9fc9c6d0c7743f34375 (patch)
treeebad059c7fa0bc7723858cb25eed0bb6e95fe42a /src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
parentfixed recognition of inner class tokens (diff)
downloadenigma-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.java16
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 ******************************************************************************/
11package cuchaz.enigma.analysis; 11package cuchaz.enigma.analysis;
12 12
13import com.google.common.collect.HashMultiset;
14import com.google.common.collect.Multiset;
15import com.strobel.assembler.metadata.MemberReference; 13import com.strobel.assembler.metadata.MemberReference;
16import com.strobel.assembler.metadata.MethodDefinition; 14import com.strobel.assembler.metadata.MethodDefinition;
17import com.strobel.assembler.metadata.ParameterDefinition; 15import com.strobel.assembler.metadata.ParameterDefinition;
@@ -36,12 +34,10 @@ import cuchaz.enigma.mapping.MethodEntry;
36public class SourceIndexBehaviorVisitor extends SourceIndexVisitor 34public 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