Fix isOptionEnabled being invoked in hot path during capability provider creation
Fixes #664
This commit is contained in:
parent
55cec86e5f
commit
f931d5c442
|
|
@ -34,12 +34,13 @@ public class CapabilityAnalyzer {
|
||||||
private static final String ICAP_PROVIDER_INTERNAL = "net/minecraftforge/common/capabilities/ICapabilityProvider";
|
private static final String ICAP_PROVIDER_INTERNAL = "net/minecraftforge/common/capabilities/ICapabilityProvider";
|
||||||
|
|
||||||
public static CapabilityAnalysisResult analyze(Class<? extends ICapabilityProvider> clazz) {
|
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);
|
CapabilityAnalysisResult result = cache.get(clazz);
|
||||||
if (result != null) return result;
|
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);
|
CapabilityAnalysisResult existing = cache.putIfAbsent(clazz, result);
|
||||||
return existing != null ? existing : result;
|
return existing != null ? existing : result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user