Fix isOptionEnabled being invoked in hot path during capability provider creation

Fixes #664
This commit is contained in:
embeddedt 2026-05-15 21:04:40 -04:00
parent 55cec86e5f
commit f931d5c442
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -34,12 +34,13 @@ public class CapabilityAnalyzer {
private static final String ICAP_PROVIDER_INTERNAL = "net/minecraftforge/common/capabilities/ICapabilityProvider";
public static CapabilityAnalysisResult analyze(Class<? extends ICapabilityProvider> 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;
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;
}