From 3307b52f09185610efc932df65e477cfeb7b9150 Mon Sep 17 00:00:00 2001 From: Chicken-Bones Date: Thu, 14 May 2015 18:24:05 +1000 Subject: [PATCH] Clear the LaunchClassLoader miss cache because the library containing it might be loaded later --- .../core/asm/MCPDeobfuscationTransformer.java | 9 +++++---- src/codechicken/obfuscator/IHeirachyEvaluator.java | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/codechicken/core/asm/MCPDeobfuscationTransformer.java b/src/codechicken/core/asm/MCPDeobfuscationTransformer.java index a296fe7..45d6d53 100644 --- a/src/codechicken/core/asm/MCPDeobfuscationTransformer.java +++ b/src/codechicken/core/asm/MCPDeobfuscationTransformer.java @@ -203,14 +203,15 @@ public class MCPDeobfuscationTransformer implements IClassTransformer, Opcodes, @Override public List getParents(ObfuscationEntry desc) { + String name = ObfMapping.obfuscated ? desc.obf.s_owner : desc.mcp.s_owner; + name = name.replace('/', '.'); try { - String name = ObfMapping.obfuscated ? desc.obf.s_owner : desc.mcp.s_owner; - name = name.replace('/', '.'); byte[] bytes = Launch.classLoader.getClassBytes(name); if (bytes != null) return ObfuscationRun.getParents(ASMHelper.createClassNode(bytes)); - } catch (IOException e) { - } + } catch (IOException ignored) {} + //clear the miss cache because the library containing it might be loaded later + Launch.classLoader.clearNegativeEntries(Collections.singleton(name)); return null; } diff --git a/src/codechicken/obfuscator/IHeirachyEvaluator.java b/src/codechicken/obfuscator/IHeirachyEvaluator.java index 63b838f..4c43444 100644 --- a/src/codechicken/obfuscator/IHeirachyEvaluator.java +++ b/src/codechicken/obfuscator/IHeirachyEvaluator.java @@ -13,7 +13,7 @@ public interface IHeirachyEvaluator public List getParents(ObfuscationEntry desc); /** - * @param srg_class The srg name of the class in question + * @param desc The mapping descriptor of the class in question * @return True if this class does not inherit from any obfuscated class. */ public boolean isLibClass(ObfuscationEntry desc);