diff options
Diffstat (limited to 'src/cuchaz/enigma/analysis/JarIndex.java')
| -rw-r--r-- | src/cuchaz/enigma/analysis/JarIndex.java | 34 |
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 ); |