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
2626
2727 STATIC_SCRIPT_INITIALIZER(+[](ScriptManager* manager){
2828 auto scriptEngine = manager->engine().get();
29+ auto scopeGuard = scriptEngine->getScopeGuard();
30+ auto* sgp = scopeGuard.get();
2931
30− scriptEngine->registerEnum("Performance.PerformancePreset",QMetaEnum::fromType<PerformanceScriptingInterface::PerformancePreset>());
31− scriptEngine->registerEnum("Performance.RefreshRateProfile",QMetaEnum::fromType<PerformanceScriptingInterface::RefreshRateProfile>());
32+ scriptEngine->registerEnum(sgp, "Performance.PerformancePreset",QMetaEnum::fromType<PerformanceScriptingInterface::PerformancePreset>());
33+ scriptEngine->registerEnum(sgp, "Performance.RefreshRateProfile",QMetaEnum::fromType<PerformanceScriptingInterface::RefreshRateProfile>());
3234 });
3335
3436 std::once_flag PerformanceScriptingInterface::registry_flag;