From 7f914aa5d50f151ceff74f0764c9eafb2bebfd9a Mon Sep 17 00:00:00 2001 From: Thiakil Date: Mon, 23 Jul 2018 13:22:33 +0800 Subject: add support for the extra loader --- src/main/java/cuchaz/enigma/CachingClasspathTypeLoader.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/main/java/cuchaz/enigma/CachingClasspathTypeLoader.java b/src/main/java/cuchaz/enigma/CachingClasspathTypeLoader.java index 58682e23..fe13321c 100644 --- a/src/main/java/cuchaz/enigma/CachingClasspathTypeLoader.java +++ b/src/main/java/cuchaz/enigma/CachingClasspathTypeLoader.java @@ -8,6 +8,12 @@ import com.strobel.assembler.metadata.ITypeLoader; * Caching version of {@link ClasspathTypeLoader} */ public class CachingClasspathTypeLoader extends CachingTypeLoader { + private static ITypeLoader extraClassPathLoader = null; + + public static void setExtraClassPathLoader(ITypeLoader loader){ + extraClassPathLoader = loader; + } + private final ITypeLoader classpathLoader = new ClasspathTypeLoader(); protected byte[] doLoad(String className) { @@ -15,6 +21,12 @@ public class CachingClasspathTypeLoader extends CachingTypeLoader { if (classpathLoader.tryLoadType(className, parentBuf)) { return parentBuf.array(); } + if (extraClassPathLoader != null){ + parentBuf.reset(); + if (extraClassPathLoader.tryLoadType(className, parentBuf)){ + return parentBuf.array(); + } + } return EMPTY_ARRAY;//need to return *something* as null means no store } } -- cgit v1.2.3