From 064fe6a628f23f21eb2c8f584215f439e54cfaec Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 24 Sep 2014 20:32:19 -0400 Subject: fixed in-jar detection for bridge-related methods --- src/cuchaz/enigma/analysis/BridgeFixer.java | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/cuchaz/enigma/analysis/BridgeFixer.java') diff --git a/src/cuchaz/enigma/analysis/BridgeFixer.java b/src/cuchaz/enigma/analysis/BridgeFixer.java index aeaf871..112b864 100644 --- a/src/cuchaz/enigma/analysis/BridgeFixer.java +++ b/src/cuchaz/enigma/analysis/BridgeFixer.java @@ -15,6 +15,8 @@ import javassist.CtMethod; import javassist.bytecode.ConstPool; import javassist.bytecode.Descriptor; import cuchaz.enigma.bytecode.ConstPoolEditor; +import cuchaz.enigma.mapping.BehaviorEntry; +import cuchaz.enigma.mapping.BehaviorEntryFactory; import cuchaz.enigma.mapping.ClassEntry; import cuchaz.enigma.mapping.MethodEntry; @@ -57,17 +59,23 @@ public class BridgeFixer case ConstPool.CONST_Methodref: case ConstPool.CONST_InterfaceMethodref: { - // translate the name and type - MethodEntry methodEntry = new MethodEntry( - new ClassEntry( Descriptor.toJvmName( editor.getMemberrefClassname( i ) ) ), + BehaviorEntry behaviorEntry = BehaviorEntryFactory.create( + Descriptor.toJvmName( editor.getMemberrefClassname( i ) ), editor.getMemberrefName( i ), editor.getMemberrefType( i ) ); - MethodEntry bridgeMethodEntry = m_index.getBridgeMethod( methodEntry ); - if( bridgeMethodEntry != null ) + + if( behaviorEntry instanceof MethodEntry ) { - // FIXIT FIXIT FIXIT FIXIT FIXIT FIXIT FIXIT - editor.changeMemberrefNameAndType( i, bridgeMethodEntry.getName(), bridgeMethodEntry.getSignature() ); + MethodEntry methodEntry = (MethodEntry)behaviorEntry; + + // translate the name and type + MethodEntry bridgeMethodEntry = m_index.getBridgeMethod( methodEntry ); + if( bridgeMethodEntry != null ) + { + // FIXIT FIXIT FIXIT FIXIT FIXIT FIXIT FIXIT + editor.changeMemberrefNameAndType( i, bridgeMethodEntry.getName(), bridgeMethodEntry.getSignature() ); + } } } break; -- cgit v1.2.3