History

script-engine: force callers of register* functions to hold a scope guard

v8 allows us to enter an Isolate::scope multiple times in the same thread, so I widened it to our ScopeGuard as well.

RTUnreal committed 8 months ago

Commit 3a6d77a1 parent 82fb89f14 files · +165 −132Browse files

Showing the changes to interface/src/scripting/PerformanceScriptingInterface.cpp (1 of 14 files). Show all

Unified · Split

interface/src/scripting/PerformanceScriptingInterface.cpp+4−2
@@ -26,9 +26,11 @@ STATIC_SCRIPT_TYPES_INITIALIZER((+[](ScriptManager* manager){ · 25 unmodified lines
26 26
27STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){27STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
28 auto scriptEngine = manager->engine().get();28 auto scriptEngine = manager->engine().get();
29 auto scopeGuard = scriptEngine->getScopeGuard();
30 auto* sgp = scopeGuard.get();
29 31
30 scriptEngine->registerEnum("Performance.PerformancePreset",QMetaEnum::fromType<PerformanceScriptingInterface::PerformancePreset>());32 scriptEngine->registerEnum(sgp, "Performance.PerformancePreset",QMetaEnum::fromType<PerformanceScriptingInterface::PerformancePreset>());
31 scriptEngine->registerEnum("Performance.RefreshRateProfile",QMetaEnum::fromType<PerformanceScriptingInterface::RefreshRateProfile>());33 scriptEngine->registerEnum(sgp, "Performance.RefreshRateProfile",QMetaEnum::fromType<PerformanceScriptingInterface::RefreshRateProfile>());
32});34});
33 35
34std::once_flag PerformanceScriptingInterface::registry_flag;36std::once_flag PerformanceScriptingInterface::registry_flag;