From 6c7fd44f00fa17060449acc95f0ab3678c6c610a Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 11 Feb 2023 20:34:50 -0500 Subject: [PATCH] Cache temporary mixin classloading --- .../mods/modlauncher/ModernFixCachingClassTransformer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/cpw/mods/modlauncher/ModernFixCachingClassTransformer.java b/src/main/java/cpw/mods/modlauncher/ModernFixCachingClassTransformer.java index 44bef8a6..1e09c60b 100644 --- a/src/main/java/cpw/mods/modlauncher/ModernFixCachingClassTransformer.java +++ b/src/main/java/cpw/mods/modlauncher/ModernFixCachingClassTransformer.java @@ -144,14 +144,14 @@ public class ModernFixCachingClassTransformer extends ClassTransformer { @Override public byte[] transform(byte[] inputClass, String className, String reason) { /* We only want to cache actual transformations */ - if(ITransformerActivity.CLASSLOADING_REASON.equals(reason)) { + if(ITransformerActivity.CLASSLOADING_REASON.equals(reason) || "mixin".equals(reason)) { final byte[] classToHash = inputClass; ArrayList hashList = computeHash(className, classToHash, reason); if(hashList == null) return super.transform(inputClass, className, reason); /* Check if the cache contains a transformed class matching these hashes */ /* TODO maybe sanitize the class name? */ - File cacheLocation = new File(CLASS_CACHE_FOLDER, className.replace('.', '/')); + File cacheLocation = new File(CLASS_CACHE_FOLDER, className.replace('.', '/') + "." + reason); boolean hashesMatch = true; try(ObjectInputStream stream = new ObjectInputStream(new FileInputStream(cacheLocation))) { ArrayList savedHash = (ArrayList)stream.readObject();