summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/bytecode/ClassRenamer.java
diff options
context:
space:
mode:
authorGravatar jeff2014-09-18 22:41:25 -0400
committerGravatar jeff2014-09-18 22:41:25 -0400
commita628fb9396d10cfbeb03c88cb1c2c119ae202a21 (patch)
tree808f6f29790840c37b6c25163c00f0d03a2f3809 /src/cuchaz/enigma/bytecode/ClassRenamer.java
parentadded better error handling for source export (diff)
downloadenigma-fork-a628fb9396d10cfbeb03c88cb1c2c119ae202a21.tar.gz
enigma-fork-a628fb9396d10cfbeb03c88cb1c2c119ae202a21.tar.xz
enigma-fork-a628fb9396d10cfbeb03c88cb1c2c119ae202a21.zip
fixed crash with jar loading
Diffstat (limited to '')
-rw-r--r--src/cuchaz/enigma/bytecode/ClassRenamer.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/src/cuchaz/enigma/bytecode/ClassRenamer.java b/src/cuchaz/enigma/bytecode/ClassRenamer.java
index efe22a1..86a0433 100644
--- a/src/cuchaz/enigma/bytecode/ClassRenamer.java
+++ b/src/cuchaz/enigma/bytecode/ClassRenamer.java
@@ -74,7 +74,7 @@ public class ClassRenamer
74 } 74 }
75 } 75 }
76 76
77 public static Set<ClassEntry> getAllClassEntries( CtClass c ) 77 public static Set<ClassEntry> getAllClassEntries( final CtClass c )
78 { 78 {
79 // get the classes that javassist knows about 79 // get the classes that javassist knows about
80 final Set<ClassEntry> entries = Sets.newHashSet(); 80 final Set<ClassEntry> entries = Sets.newHashSet();
@@ -85,7 +85,23 @@ public class ClassRenamer
85 { 85 {
86 if( obj instanceof String ) 86 if( obj instanceof String )
87 { 87 {
88 entries.add( new ClassEntry( (String)obj ) ); 88 String str = (String)obj;
89
90 // javassist throws a lot of weird things at this map
91 // I either have to implement my on class scanner, or just try to filter out the weirdness
92 // I'm opting to filter out the weirdness for now
93
94 // skip anything with generic arguments
95 if( str.indexOf( '<' ) >= 0 || str.indexOf( '>' ) >= 0 || str.indexOf( ';' ) >= 0 )
96 {
97 return null;
98 }
99
100 // convert path/to/class.inner to path/to/class$inner
101 str = str.replace( '.', '$' );
102
103 // remember everything else
104 entries.add( new ClassEntry( str ) );
89 } 105 }
90 return null; 106 return null;
91 } 107 }