diff options
| author | 2014-09-30 00:25:36 -0400 | |
|---|---|---|
| committer | 2014-09-30 00:25:36 -0400 | |
| commit | a83bbfd5c510367a194073b1db132022cacf65ed (patch) | |
| tree | abfd7520b79ef1e64b7430bd81e75a30353b7f14 /src/cuchaz/enigma/analysis | |
| parent | fixed recognition of static initializer tokens (diff) | |
| download | enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.gz enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.tar.xz enigma-fork-a83bbfd5c510367a194073b1db132022cacf65ed.zip | |
fixed nasty issue with renaming inner classes, but alas, more bugs remain
Diffstat (limited to 'src/cuchaz/enigma/analysis')
| -rw-r--r-- | src/cuchaz/enigma/analysis/EntryReference.java | 15 | ||||
| -rw-r--r-- | src/cuchaz/enigma/analysis/JarIndex.java | 7 | ||||
| -rw-r--r-- | src/cuchaz/enigma/analysis/SourceIndex.java | 2 |
3 files changed, 19 insertions, 5 deletions
diff --git a/src/cuchaz/enigma/analysis/EntryReference.java b/src/cuchaz/enigma/analysis/EntryReference.java index 4da2f58..0cde875 100644 --- a/src/cuchaz/enigma/analysis/EntryReference.java +++ b/src/cuchaz/enigma/analysis/EntryReference.java | |||
| @@ -79,6 +79,21 @@ public class EntryReference<E extends Entry, C extends Entry> | |||
| 79 | return entry; | 79 | return entry; |
| 80 | } | 80 | } |
| 81 | 81 | ||
| 82 | public String getNamableName( ) | ||
| 83 | { | ||
| 84 | if( getNameableEntry() instanceof ClassEntry ) | ||
| 85 | { | ||
| 86 | ClassEntry classEntry = (ClassEntry)getNameableEntry(); | ||
| 87 | if( classEntry.isInnerClass() ) | ||
| 88 | { | ||
| 89 | // make sure we only rename the inner class name | ||
| 90 | return classEntry.getInnerClassName(); | ||
| 91 | } | ||
| 92 | } | ||
| 93 | |||
| 94 | return getNameableEntry().getName(); | ||
| 95 | } | ||
| 96 | |||
| 82 | @Override | 97 | @Override |
| 83 | public int hashCode( ) | 98 | public int hashCode( ) |
| 84 | { | 99 | { |
diff --git a/src/cuchaz/enigma/analysis/JarIndex.java b/src/cuchaz/enigma/analysis/JarIndex.java index 604e485..ba08206 100644 --- a/src/cuchaz/enigma/analysis/JarIndex.java +++ b/src/cuchaz/enigma/analysis/JarIndex.java | |||
| @@ -164,9 +164,10 @@ public class JarIndex | |||
| 164 | String outerClassName = findOuterClass( c ); | 164 | String outerClassName = findOuterClass( c ); |
| 165 | if( outerClassName != null ) | 165 | if( outerClassName != null ) |
| 166 | { | 166 | { |
| 167 | String innerClassName = Descriptor.toJvmName( c.getName() ); | 167 | String innerClassName = c.getSimpleName(); |
| 168 | m_innerClasses.put( outerClassName, innerClassName ); | 168 | m_innerClasses.put( outerClassName, innerClassName ); |
| 169 | m_outerClasses.put( innerClassName, outerClassName ); | 169 | boolean innerWasAdded = m_outerClasses.put( innerClassName, outerClassName ) == null; |
| 170 | assert( innerWasAdded ); | ||
| 170 | 171 | ||
| 171 | BehaviorEntry enclosingBehavior = isAnonymousClass( c, outerClassName ); | 172 | BehaviorEntry enclosingBehavior = isAnonymousClass( c, outerClassName ); |
| 172 | if( enclosingBehavior != null ) | 173 | if( enclosingBehavior != null ) |
| @@ -188,7 +189,7 @@ public class JarIndex | |||
| 188 | Map<String,String> renames = Maps.newHashMap(); | 189 | Map<String,String> renames = Maps.newHashMap(); |
| 189 | for( Map.Entry<String,String> entry : m_outerClasses.entrySet() ) | 190 | for( Map.Entry<String,String> entry : m_outerClasses.entrySet() ) |
| 190 | { | 191 | { |
| 191 | renames.put( entry.getKey(), entry.getValue() + "$" + new ClassEntry( entry.getKey() ).getSimpleName() ); | 192 | renames.put( Constants.NonePackage + "/" + entry.getKey(), entry.getValue() + "$" + entry.getKey() ); |
| 192 | } | 193 | } |
| 193 | EntryRenamer.renameClassesInSet( renames, m_obfClassEntries ); | 194 | EntryRenamer.renameClassesInSet( renames, m_obfClassEntries ); |
| 194 | m_translationIndex.renameClasses( renames ); | 195 | m_translationIndex.renameClasses( renames ); |
diff --git a/src/cuchaz/enigma/analysis/SourceIndex.java b/src/cuchaz/enigma/analysis/SourceIndex.java index faae1a1..21a499e 100644 --- a/src/cuchaz/enigma/analysis/SourceIndex.java +++ b/src/cuchaz/enigma/analysis/SourceIndex.java | |||
| @@ -89,14 +89,12 @@ public class SourceIndex | |||
| 89 | // DEBUG | 89 | // DEBUG |
| 90 | //System.out.println( String.format( "%s \"%s\" region: %s", node.getNodeType(), name, region ) ); | 90 | //System.out.println( String.format( "%s \"%s\" region: %s", node.getNodeType(), name, region ) ); |
| 91 | 91 | ||
| 92 | /* TODO: double check that we still need this | ||
| 93 | // for tokens representing inner classes, make sure we only get the simple name | 92 | // for tokens representing inner classes, make sure we only get the simple name |
| 94 | int pos = node.getText().lastIndexOf( '$' ); | 93 | int pos = node.getText().lastIndexOf( '$' ); |
| 95 | if( pos >= 0 ) | 94 | if( pos >= 0 ) |
| 96 | { | 95 | { |
| 97 | token.end -= pos + 1; | 96 | token.end -= pos + 1; |
| 98 | } | 97 | } |
| 99 | */ | ||
| 100 | 98 | ||
| 101 | return token; | 99 | return token; |
| 102 | } | 100 | } |