From c940cc546626e4cce8034d72dfc67de8dc7a55dc Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 28 Mar 2023 14:58:44 +0200 Subject: [PATCH] QmlDesigner: Fix access to nullptr We try to access projectStorageData but it does not exists. Now we return a dummyProjectStorage() instead. Because it is never accessed if we don't use the project storage we should be fine. Change-Id: Ic36a27472e95012b29b15ad33d2abe01507d64b4 Reviewed-by: Qt CI Bot Reviewed-by: Tim Jenssen --- .../qmldesigner/qmldesignerprojectmanager.cpp | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp index 628e1d6b10e..8b323aa0c7a 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp @@ -197,11 +197,11 @@ public: std::unique_ptr createProjectStorageData(::ProjectExplorer::Project *project) { - if (qEnvironmentVariableIsSet("QDS_ACTIVATE_PROJECT_STORAGE")) { + if constexpr (useProjectStorage()) { return std::make_unique(project); + } else { + return {}; } - - return {}; } } // namespace @@ -276,9 +276,21 @@ AsynchronousImageCache &QmlDesignerProjectManager::asynchronousImageCache() return imageCacheData()->asynchronousImageCache; } +namespace { +ProjectStorage *dummyProjectStorage() +{ + return nullptr; +} + +} // namespace + ProjectStorage &QmlDesignerProjectManager::projectStorage() { - return m_projectData->projectStorageData->storage; + if constexpr (useProjectStorage()) { + return m_projectData->projectStorageData->storage; + } else { + return *dummyProjectStorage(); + } } void QmlDesignerProjectManager::editorOpened(::Core::IEditor *) {}