From cf3ffcee30083a71e68e3edb9ecbb936cc255992 Mon Sep 17 00:00:00 2001 From: jeff Date: Sun, 28 Sep 2014 15:20:54 -0400 Subject: added proper support for renaming constructors --- src/cuchaz/enigma/gui/GuiController.java | 34 ++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 13 deletions(-) (limited to 'src/cuchaz/enigma/gui/GuiController.java') diff --git a/src/cuchaz/enigma/gui/GuiController.java b/src/cuchaz/enigma/gui/GuiController.java index 3adaf91..c7efbce 100644 --- a/src/cuchaz/enigma/gui/GuiController.java +++ b/src/cuchaz/enigma/gui/GuiController.java @@ -165,9 +165,9 @@ public class GuiController ); } - public boolean entryHasMapping( Entry deobfEntry ) + public boolean entryHasDeobfuscatedName( Entry deobfEntry ) { - return m_deobfuscator.hasMapping( m_deobfuscator.obfuscateEntry( deobfEntry ) ); + return m_deobfuscator.hasDeobfuscatedName( m_deobfuscator.obfuscateEntry( deobfEntry ) ); } public boolean entryIsInJar( Entry deobfEntry ) @@ -175,6 +175,11 @@ public class GuiController return m_deobfuscator.isObfuscatedIdentifier( m_deobfuscator.obfuscateEntry( deobfEntry ) ); } + public boolean referenceIsRenameable( EntryReference deobfReference ) + { + return m_deobfuscator.isRenameable( m_deobfuscator.obfuscateReference( deobfReference ) ); + } + public ClassInheritanceTreeNode getClassInheritance( ClassEntry deobfClassEntry ) { ClassEntry obfClassEntry = m_deobfuscator.obfuscateEntry( deobfClassEntry ); @@ -243,7 +248,7 @@ public class GuiController public void rename( EntryReference deobfReference, String newName ) { EntryReference obfReference = m_deobfuscator.obfuscateReference( deobfReference ); - m_deobfuscator.rename( obfReference.entry, newName ); + m_deobfuscator.rename( obfReference.getNameableEntry(), newName ); m_isDirty = true; refreshClasses(); refreshCurrentClass( obfReference ); @@ -252,7 +257,7 @@ public class GuiController public void removeMapping( EntryReference deobfReference ) { EntryReference obfReference = m_deobfuscator.obfuscateReference( deobfReference ); - m_deobfuscator.removeMapping( obfReference.entry ); + m_deobfuscator.removeMapping( obfReference.getNameableEntry() ); m_isDirty = true; refreshClasses(); refreshCurrentClass( obfReference ); @@ -261,7 +266,7 @@ public class GuiController public void markAsDeobfuscated( EntryReference deobfReference ) { EntryReference obfReference = m_deobfuscator.obfuscateReference( deobfReference ); - m_deobfuscator.markAsDeobfuscated( obfReference.entry ); + m_deobfuscator.markAsDeobfuscated( obfReference.getNameableEntry() ); m_isDirty = true; refreshClasses(); refreshCurrentClass( obfReference ); @@ -273,7 +278,7 @@ public class GuiController { throw new IllegalArgumentException( "Entry cannot be null!" ); } - openReference( new EntryReference( deobfEntry ) ); + openReference( new EntryReference( deobfEntry, deobfEntry.getName() ) ); } public void openReference( EntryReference deobfReference ) @@ -285,7 +290,7 @@ public class GuiController // get the reference target class EntryReference obfReference = m_deobfuscator.obfuscateReference( deobfReference ); - ClassEntry obfClassEntry = obfReference.getClassEntry().getOuterClassEntry(); + ClassEntry obfClassEntry = obfReference.getLocationClassEntry().getOuterClassEntry(); if( !m_deobfuscator.isObfuscatedIdentifier( obfClassEntry ) ) { throw new IllegalArgumentException( "Obfuscated class " + obfClassEntry + " was not found in the jar!" ); @@ -390,13 +395,16 @@ public class GuiController for( Token token : m_index.referenceTokens() ) { EntryReference reference = m_index.getDeobfReference( token ); - if( entryHasMapping( reference.entry ) ) - { - deobfuscatedTokens.add( token ); - } - else if( entryIsInJar( reference.entry ) ) + if( referenceIsRenameable( reference ) ) { - obfuscatedTokens.add( token ); + if( entryHasDeobfuscatedName( reference.getNameableEntry() ) ) + { + deobfuscatedTokens.add( token ); + } + else + { + obfuscatedTokens.add( token ); + } } else { -- cgit v1.2.3