From f931d5c4423a27c35d085e1cf42035e02bb9c7ee Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Fri, 15 May 2026 21:04:40 -0400 Subject: [PATCH] Fix isOptionEnabled being invoked in hot path during capability provider creation Fixes #664 --- .../forge/capability/analysis/CapabilityAnalyzer.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/embeddedt/modernfix/forge/capability/analysis/CapabilityAnalyzer.java b/src/main/java/org/embeddedt/modernfix/forge/capability/analysis/CapabilityAnalyzer.java index 72a8ab08..ad3d1129 100644 --- a/src/main/java/org/embeddedt/modernfix/forge/capability/analysis/CapabilityAnalyzer.java +++ b/src/main/java/org/embeddedt/modernfix/forge/capability/analysis/CapabilityAnalyzer.java @@ -34,12 +34,13 @@ public class CapabilityAnalyzer { private static final String ICAP_PROVIDER_INTERNAL = "net/minecraftforge/common/capabilities/ICapabilityProvider"; public static CapabilityAnalysisResult analyze(Class clazz) { - if (!ModernFixMixinPlugin.instance.isOptionEnabled("perf.faster_capabilities.bytecode_analysis.CapabilityAnalyzer")) { - return new CapabilityAnalysisResult.Indeterminate("bytecode analysis disabled"); - } CapabilityAnalysisResult result = cache.get(clazz); if (result != null) return result; - result = doAnalyzeSafe(clazz); + if (!ModernFixMixinPlugin.instance.isOptionEnabled("perf.faster_capabilities.bytecode_analysis.CapabilityAnalyzer")) { + result = new CapabilityAnalysisResult.Indeterminate("bytecode analysis disabled"); + } else { + result = doAnalyzeSafe(clazz); + } CapabilityAnalysisResult existing = cache.putIfAbsent(clazz, result); return existing != null ? existing : result; }