From 580fbf899accb4181c1ca1e41abbcc2b7404c870 Mon Sep 17 00:00:00 2001 From: jeff Date: Thu, 14 Aug 2014 00:46:16 -0400 Subject: fixed bug with method inheritance detection --- src/cuchaz/enigma/analysis/JarIndex.java | 22 ++++++++-------------- .../enigma/analysis/MethodInheritanceTreeNode.java | 2 +- 2 files changed, 9 insertions(+), 15 deletions(-) (limited to 'src') diff --git a/src/cuchaz/enigma/analysis/JarIndex.java b/src/cuchaz/enigma/analysis/JarIndex.java index a0aa2955..845be600 100644 --- a/src/cuchaz/enigma/analysis/JarIndex.java +++ b/src/cuchaz/enigma/analysis/JarIndex.java @@ -238,19 +238,13 @@ public class JarIndex public boolean isMethodImplemented( MethodEntry methodEntry ) { - return isMethodImplemented( methodEntry.getClassName(), methodEntry.getName(), methodEntry.getSignature() ); - } - - public boolean isMethodImplemented( String className, String methodName, String methodSignature ) - { - Collection implementations = m_methodImplementations.get( className ); + Collection implementations = m_methodImplementations.get( methodEntry.getClassName() ); if( implementations == null ) { return false; } - return implementations.contains( getMethodKey( methodName, methodSignature ) ); + return implementations.contains( methodEntry ); } - public ClassInheritanceTreeNode getClassInheritance( Translator deobfuscatingTranslator, ClassEntry obfClassEntry ) { @@ -272,7 +266,12 @@ public class JarIndex String baseImplementationClassName = obfMethodEntry.getClassName(); for( String ancestorClassName : m_ancestries.getAncestry( obfMethodEntry.getClassName() ) ) { - if( isMethodImplemented( ancestorClassName, obfMethodEntry.getName(), obfMethodEntry.getSignature() ) ) + MethodEntry ancestorMethodEntry = new MethodEntry( + new ClassEntry( ancestorClassName ), + obfMethodEntry.getName(), + obfMethodEntry.getSignature() + ); + if( isMethodImplemented( ancestorMethodEntry ) ) { baseImplementationClassName = ancestorClassName; } @@ -305,9 +304,4 @@ public class JarIndex { return m_methodCalls.get( entry ); } - - private String getMethodKey( String name, String signature ) - { - return name + signature; - } } diff --git a/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java b/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java index a28a9f46..73f9714c 100644 --- a/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java +++ b/src/cuchaz/enigma/analysis/MethodInheritanceTreeNode.java @@ -93,7 +93,7 @@ public class MethodInheritanceTreeNode extends DefaultMutableTreeNode nodes.add( new MethodInheritanceTreeNode( m_deobfuscatingTranslator, methodEntry, - index.isMethodImplemented( subclassName, m_entry.getName(), m_entry.getSignature() ) + index.isMethodImplemented( methodEntry ) ) ); } -- cgit v1.2.3