diff options
-rw-r--r-- | src/logic/executor.cpp | 4 | ||||
-rw-r--r-- | src/logic/qlogicaspect.cpp | 1 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/logic/executor.cpp b/src/logic/executor.cpp index 1c428db47..41d2f2e31 100644 --- a/src/logic/executor.cpp +++ b/src/logic/executor.cpp @@ -89,7 +89,9 @@ bool Executor::event(QEvent *e) */ void Executor::processLogicFrameUpdates(float dt) { - Q_ASSERT(m_scene); + if (!m_scene || m_nodeIds.isEmpty()) + return; + const QVector<QNode *> nodes = m_scene->lookupNodes(m_nodeIds); for (QNode *node : nodes) { QFrameAction *frameAction = qobject_cast<QFrameAction *>(node); diff --git a/src/logic/qlogicaspect.cpp b/src/logic/qlogicaspect.cpp index 649a14f25..c4459a84d 100644 --- a/src/logic/qlogicaspect.cpp +++ b/src/logic/qlogicaspect.cpp @@ -84,6 +84,7 @@ void QLogicAspectPrivate::onEngineAboutToShutdown() // Throw away any pending work that may deadlock during the shutdown procedure // when the main thread waits for any queued jobs to finish. m_executor->clearQueueAndProceed(); + m_executor->setScene(nullptr); } void QLogicAspectPrivate::registerBackendTypes() |