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/JarIndex.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/JarIndex.java')
| -rw-r--r-- | src/cuchaz/enigma/analysis/JarIndex.java | 30 |
1 files changed, 13 insertions, 17 deletions
diff --git a/src/cuchaz/enigma/analysis/JarIndex.java b/src/cuchaz/enigma/analysis/JarIndex.java index f408d93..315a286 100644 --- a/src/cuchaz/enigma/analysis/JarIndex.java +++ b/src/cuchaz/enigma/analysis/JarIndex.java | |||
| @@ -146,10 +146,15 @@ public class JarIndex | |||
| 146 | } | 146 | } |
| 147 | else if( behavior instanceof CtConstructor ) | 147 | else if( behavior instanceof CtConstructor ) |
| 148 | { | 148 | { |
| 149 | thisEntry = new ConstructorEntry( | 149 | boolean isStatic = behavior.getName().equals( "<clinit>" ); |
| 150 | new ClassEntry( className ), | 150 | if( isStatic ) |
| 151 | behavior.getSignature() | 151 | { |
| 152 | ); | 152 | thisEntry = new ConstructorEntry( new ClassEntry( className ) ); |
| 153 | } | ||
| 154 | else | ||
| 155 | { | ||
| 156 | thisEntry = new ConstructorEntry( new ClassEntry( className ), behavior.getSignature() ); | ||
| 157 | } | ||
| 153 | } | 158 | } |
| 154 | else | 159 | else |
| 155 | { | 160 | { |
| @@ -159,7 +164,6 @@ public class JarIndex | |||
| 159 | // index method calls | 164 | // index method calls |
| 160 | try | 165 | try |
| 161 | { | 166 | { |
| 162 | final Multiset<Entry> callNumbers = HashMultiset.create(); | ||
| 163 | behavior.instrument( new ExprEditor( ) | 167 | behavior.instrument( new ExprEditor( ) |
| 164 | { | 168 | { |
| 165 | @Override | 169 | @Override |
| @@ -171,11 +175,9 @@ public class JarIndex | |||
| 171 | call.getMethodName(), | 175 | call.getMethodName(), |
| 172 | call.getSignature() | 176 | call.getSignature() |
| 173 | ); | 177 | ); |
| 174 | callNumbers.add( calledMethodEntry ); | ||
| 175 | EntryReference<BehaviorEntry,BehaviorEntry> reference = new EntryReference<BehaviorEntry,BehaviorEntry>( | 178 | EntryReference<BehaviorEntry,BehaviorEntry> reference = new EntryReference<BehaviorEntry,BehaviorEntry>( |
| 176 | calledMethodEntry, | 179 | calledMethodEntry, |
| 177 | thisEntry, | 180 | thisEntry |
| 178 | callNumbers.count( calledMethodEntry ) - 1 | ||
| 179 | ); | 181 | ); |
| 180 | m_behaviorReferences.put( calledMethodEntry, reference ); | 182 | m_behaviorReferences.put( calledMethodEntry, reference ); |
| 181 | } | 183 | } |
| @@ -188,11 +190,9 @@ public class JarIndex | |||
| 188 | new ClassEntry( className ), | 190 | new ClassEntry( className ), |
| 189 | call.getFieldName() | 191 | call.getFieldName() |
| 190 | ); | 192 | ); |
| 191 | callNumbers.add( calledFieldEntry ); | ||
| 192 | EntryReference<FieldEntry,BehaviorEntry> reference = new EntryReference<FieldEntry,BehaviorEntry>( | 193 | EntryReference<FieldEntry,BehaviorEntry> reference = new EntryReference<FieldEntry,BehaviorEntry>( |
| 193 | calledFieldEntry, | 194 | calledFieldEntry, |
| 194 | thisEntry, | 195 | thisEntry |
| 195 | callNumbers.count( calledFieldEntry ) - 1 | ||
| 196 | ); | 196 | ); |
| 197 | m_fieldReferences.put( calledFieldEntry, reference ); | 197 | m_fieldReferences.put( calledFieldEntry, reference ); |
| 198 | } | 198 | } |
| @@ -208,11 +208,9 @@ public class JarIndex | |||
| 208 | new ClassEntry( className ), | 208 | new ClassEntry( className ), |
| 209 | call.getSignature() | 209 | call.getSignature() |
| 210 | ); | 210 | ); |
| 211 | callNumbers.add( calledConstructorEntry ); | ||
| 212 | EntryReference<BehaviorEntry,BehaviorEntry> reference = new EntryReference<BehaviorEntry,BehaviorEntry>( | 211 | EntryReference<BehaviorEntry,BehaviorEntry> reference = new EntryReference<BehaviorEntry,BehaviorEntry>( |
| 213 | calledConstructorEntry, | 212 | calledConstructorEntry, |
| 214 | thisEntry, | 213 | thisEntry |
| 215 | callNumbers.count( calledConstructorEntry ) - 1 | ||
| 216 | ); | 214 | ); |
| 217 | m_behaviorReferences.put( calledConstructorEntry, reference ); | 215 | m_behaviorReferences.put( calledConstructorEntry, reference ); |
| 218 | } | 216 | } |
| @@ -225,11 +223,9 @@ public class JarIndex | |||
| 225 | new ClassEntry( className ), | 223 | new ClassEntry( className ), |
| 226 | call.getSignature() | 224 | call.getSignature() |
| 227 | ); | 225 | ); |
| 228 | callNumbers.add( calledConstructorEntry ); | ||
| 229 | EntryReference<BehaviorEntry,BehaviorEntry> reference = new EntryReference<BehaviorEntry,BehaviorEntry>( | 226 | EntryReference<BehaviorEntry,BehaviorEntry> reference = new EntryReference<BehaviorEntry,BehaviorEntry>( |
| 230 | calledConstructorEntry, | 227 | calledConstructorEntry, |
| 231 | thisEntry, | 228 | thisEntry |
| 232 | callNumbers.count( calledConstructorEntry ) - 1 | ||
| 233 | ); | 229 | ); |
| 234 | m_behaviorReferences.put( calledConstructorEntry, reference ); | 230 | m_behaviorReferences.put( calledConstructorEntry, reference ); |
| 235 | } | 231 | } |