From 7defa283eb2c6d4c540f7cdf94f862c93775c8a4 Mon Sep 17 00:00:00 2001 From: asiekierka Date: Wed, 17 Aug 2016 19:54:22 +0200 Subject: Fix #4, at least to the extent we currently need it --- src/main/java/cuchaz/enigma/convert/MappingsConverter.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src/main/java/cuchaz/enigma/convert/MappingsConverter.java') diff --git a/src/main/java/cuchaz/enigma/convert/MappingsConverter.java b/src/main/java/cuchaz/enigma/convert/MappingsConverter.java index 61b0e7e..4b4bb81 100644 --- a/src/main/java/cuchaz/enigma/convert/MappingsConverter.java +++ b/src/main/java/cuchaz/enigma/convert/MappingsConverter.java @@ -117,13 +117,19 @@ public class MappingsConverter { Collections.sort(chainSizes); for (int chainSize : chainSizes) { for (java.util.Map.Entry match : matchesByDestChainSize.get(chainSize)) { - // get class info ClassEntry obfSourceClassEntry = match.getKey(); ClassEntry obfDestClassEntry = match.getValue(); List destClassChain = destDeobfuscator.getJarIndex().getObfClassChain(obfDestClassEntry); - ClassMapping sourceMapping = sourceDeobfuscator.getMappings().getClassByObf(obfSourceClassEntry); + ClassMapping sourceMapping; + if (obfSourceClassEntry.isInnerClass()) { + List srcClassChain = sourceDeobfuscator.getMappings().getClassMappingChain(obfSourceClassEntry); + sourceMapping = srcClassChain.get(srcClassChain.size() - 1); + } else { + sourceMapping = sourceDeobfuscator.getMappings().getClassByObf(obfSourceClassEntry); + } + if (sourceMapping == null) { // if this class was never deobfuscated, don't try to match it continue; -- cgit v1.2.3