diff --git a/libraries/recording/src/recording/RecordingScriptingInterface.cpp b/libraries/recording/src/recording/RecordingScriptingInterface.cpp index 43fe5c3688..a05ee60604 100644 --- a/libraries/recording/src/recording/RecordingScriptingInterface.cpp +++ b/libraries/recording/src/recording/RecordingScriptingInterface.cpp @@ -64,8 +64,10 @@ float RecordingScriptingInterface::playerLength() const { } void RecordingScriptingInterface::playClip(NetworkClipLoaderPointer clipLoader, const QString& url, const ScriptValue& callback) { - Locker lock(_mutex); - _player->queueClip(clipLoader->getClip()); + { + Locker lock(_mutex); + _player->queueClip(clipLoader->getClip()); + } if (callback.isFunction()) { auto engine = callback.engine(); @@ -75,8 +77,6 @@ void RecordingScriptingInterface::playClip(NetworkClipLoaderPointer clipLoader, } void RecordingScriptingInterface::loadRecording(const QString& url, const ScriptValue& callback) { - Locker lock(_mutex); - auto clipLoader = DependencyManager::get()->getClipLoader(url); if (clipLoader->isLoaded()) { @@ -85,6 +85,8 @@ void RecordingScriptingInterface::loadRecording(const QString& url, const Script return; } + Locker lock(_mutex); + // hold a strong pointer to the loading clip so that it has a chance to load _clipLoaders.insert(clipLoader); diff --git a/libraries/script-engine/src/AssetScriptingInterface.cpp b/libraries/script-engine/src/AssetScriptingInterface.cpp index f412d9d2d6..fe11582abf 100644 --- a/libraries/script-engine/src/AssetScriptingInterface.cpp +++ b/libraries/script-engine/src/AssetScriptingInterface.cpp @@ -244,7 +244,6 @@ Promise AssetScriptingInterface::jsPromiseReady(Promise promise, const ScriptVal void AssetScriptingInterface::jsCallback(const ScriptValue& handler, const ScriptValue& error, const ScriptValue& result) { Q_ASSERT(thread() == QThread::currentThread()); - Q_ASSERT(engine()); //V8TODO: which kind of script context guard needs to be used here? ScriptContextGuard scriptContextGuard(_scriptManager->engine()->currentContext()); auto errorValue = !error.toBool() ? engine()->nullValue() : error;