From 53cf915e8d73212100783d8339edf0adda0a546b Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Wed, 24 Jul 2019 14:51:41 -0700 Subject: [PATCH] Guard for AudioInjectorManager existance; clear an audio interface pointer --- interface/src/Application.cpp | 1 + libraries/script-engine/src/ScriptAudioInjector.cpp | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index ad38599dcf..1872a03221 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -2824,6 +2824,7 @@ void Application::cleanupBeforeQuit() { // destroy Audio so it and its threads have a chance to go down safely // this must happen after QML, as there are unexplained audio crashes originating in qtwebengine + AudioInjector::setLocalAudioInterface(nullptr); DependencyManager::destroy(); DependencyManager::destroy(); diff --git a/libraries/script-engine/src/ScriptAudioInjector.cpp b/libraries/script-engine/src/ScriptAudioInjector.cpp index 267ac3339d..ebc9287c2a 100644 --- a/libraries/script-engine/src/ScriptAudioInjector.cpp +++ b/libraries/script-engine/src/ScriptAudioInjector.cpp @@ -33,5 +33,9 @@ ScriptAudioInjector::ScriptAudioInjector(const AudioInjectorPointer& injector) : } ScriptAudioInjector::~ScriptAudioInjector() { - DependencyManager::get()->stop(_injector); -} \ No newline at end of file + const auto audioInjectorManager = DependencyManager::get(); + // AudioInjectorManager may have been destroyed on application shutdown. + if (audioInjectorManager) { + audioInjectorManager->stop(_injector); + } +}