summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/JarIndex.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cuchaz/enigma/analysis/JarIndex.java')
-rw-r--r--src/cuchaz/enigma/analysis/JarIndex.java34
1 files changed, 19 insertions, 15 deletions
diff --git a/src/cuchaz/enigma/analysis/JarIndex.java b/src/cuchaz/enigma/analysis/JarIndex.java
index deacf16..b479b69 100644
--- a/src/cuchaz/enigma/analysis/JarIndex.java
+++ b/src/cuchaz/enigma/analysis/JarIndex.java
@@ -95,7 +95,7 @@ public class JarIndex
95 // step 2: index method/field access 95 // step 2: index method/field access
96 for( CtClass c : JarClassIterator.classes( jar ) ) 96 for( CtClass c : JarClassIterator.classes( jar ) )
97 { 97 {
98 fixClass( c ); 98 ClassRenamer.moveAllClassesOutOfDefaultPackage( c, Constants.NonePackage );
99 ClassEntry classEntry = new ClassEntry( Descriptor.toJvmName( c.getName() ) ); 99 ClassEntry classEntry = new ClassEntry( Descriptor.toJvmName( c.getName() ) );
100 for( CtField field : c.getDeclaredFields() ) 100 for( CtField field : c.getDeclaredFields() )
101 { 101 {
@@ -112,7 +112,7 @@ public class JarIndex
112 // step 3: index the types, methods 112 // step 3: index the types, methods
113 for( CtClass c : JarClassIterator.classes( jar ) ) 113 for( CtClass c : JarClassIterator.classes( jar ) )
114 { 114 {
115 fixClass( c ); 115 ClassRenamer.moveAllClassesOutOfDefaultPackage( c, Constants.NonePackage );
116 String className = Descriptor.toJvmName( c.getName() ); 116 String className = Descriptor.toJvmName( c.getName() );
117 m_ancestries.addSuperclass( className, Descriptor.toJvmName( c.getClassFile().getSuperclass() ) ); 117 m_ancestries.addSuperclass( className, Descriptor.toJvmName( c.getClassFile().getSuperclass() ) );
118 for( String interfaceName : c.getClassFile().getInterfaces() ) 118 for( String interfaceName : c.getClassFile().getInterfaces() )
@@ -128,8 +128,7 @@ public class JarIndex
128 // step 4: index inner classes and anonymous classes 128 // step 4: index inner classes and anonymous classes
129 for( CtClass c : JarClassIterator.classes( jar ) ) 129 for( CtClass c : JarClassIterator.classes( jar ) )
130 { 130 {
131 fixClass( c ); 131 ClassRenamer.moveAllClassesOutOfDefaultPackage( c, Constants.NonePackage );
132
133 String outerClassName = findOuterClass( c ); 132 String outerClassName = findOuterClass( c );
134 if( outerClassName != null ) 133 if( outerClassName != null )
135 { 134 {
@@ -164,17 +163,6 @@ public class JarIndex
164 renameMethods( m_bridgeMethods ); 163 renameMethods( m_bridgeMethods );
165 } 164 }
166 165
167 private void fixClass( CtClass c )
168 {
169 ClassEntry classEntry = new ClassEntry( Descriptor.toJvmName( c.getName() ) );
170 if( classEntry.isInDefaultPackage() )
171 {
172 // move class out of default package
173 classEntry = new ClassEntry( Constants.NonePackage + "/" + classEntry.getName() );
174 ClassRenamer.moveAllClassesOutOfDefaultPackage( c, Constants.NonePackage );
175 }
176 }
177
178 private void indexBehavior( CtBehavior behavior ) 166 private void indexBehavior( CtBehavior behavior )
179 { 167 {
180 // get the method entry 168 // get the method entry
@@ -729,6 +717,22 @@ public class JarIndex
729 717
730 private void renameClasses( Map<String,String> renames ) 718 private void renameClasses( Map<String,String> renames )
731 { 719 {
720 // rename class entries
721 Set<ClassEntry> obfClassEntries = Sets.newHashSet();
722 for( ClassEntry classEntry : m_obfClassEntries )
723 {
724 if( renames.containsKey( classEntry.getName() ) )
725 {
726 obfClassEntries.add( new ClassEntry( renames.get( classEntry.getName() ) ) );
727 }
728 else
729 {
730 obfClassEntries.add( classEntry );
731 }
732 }
733 m_obfClassEntries = obfClassEntries;
734
735 // rename others
732 m_ancestries.renameClasses( renames ); 736 m_ancestries.renameClasses( renames );
733 renameClassesInMultimap( renames, m_methodImplementations ); 737 renameClassesInMultimap( renames, m_methodImplementations );
734 renameClassesInMultimap( renames, m_behaviorReferences ); 738 renameClassesInMultimap( renames, m_behaviorReferences );