History

Partial fix for asset scripting crash

ksuprynowicz committed 3 years ago

Commit e14ae4a1 parent e75c6711 file · +3 −0Browse files

Showing the changes to libraries/script-engine/src/AssetScriptingInterface.cpp (1 of 1 file). Show all

Unified · Split

libraries/script-engine/src/AssetScriptingInterface.cpp+3−0
@@ -245,6 +245,8 @@ void AssetScriptingInterface::jsCallback(const ScriptValue& handler, · 244 unmodified lines
245 const ScriptValue& error, const ScriptValue& result) {245 const ScriptValue& error, const ScriptValue& result) {
246 Q_ASSERT(thread() == QThread::currentThread());246 Q_ASSERT(thread() == QThread::currentThread());
247 Q_ASSERT(engine);247 Q_ASSERT(engine);
248 //V8TODO: which kind of script context guard needs to be used here?
249 ScriptContextGuard scriptContextGuard(engine()->currentContext());
248 auto errorValue = !error.toBool() ? engine()->nullValue() : error;250 auto errorValue = !error.toBool() ? engine()->nullValue() : error;
249 JS_VERIFY(handler.isObject() && handler.property("callback").isFunction(),251 JS_VERIFY(handler.isObject() && handler.property("callback").isFunction(),
250 QString("jsCallback -- .callback is not a function (%1)")252 QString("jsCallback -- .callback is not a function (%1)")
@@ -257,6 +259,7 @@ void AssetScriptingInterface::jsCallback(const ScriptValue& handler, · 6 unmodified lines
257 Q_ASSERT(thread() == QThread::currentThread());259 Q_ASSERT(thread() == QThread::currentThread());
258 Q_ASSERT(handler.engine());260 Q_ASSERT(handler.engine());
259 auto engine = handler.engine();261 auto engine = handler.engine();
262
260 jsCallback(handler, error, engine->toScriptValue(result));263 jsCallback(handler, error, engine->toScriptValue(result));
261}264}
262 265