From c77a6e57ae6ca023124fb024c013a76741dcc63f Mon Sep 17 00:00:00 2001 From: Kacper Donat Date: Sun, 18 May 2025 10:58:30 +0200 Subject: [PATCH] Materials: Fix MaterialManager being copied on getInstance() --- src/Mod/Material/App/MaterialLibrary.cpp | 2 +- src/Mod/Material/App/MaterialManager.h | 3 +++ src/Mod/Material/App/Materials.cpp | 4 ++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Mod/Material/App/MaterialLibrary.cpp b/src/Mod/Material/App/MaterialLibrary.cpp index 94ae7d3f11..49c79ede77 100644 --- a/src/Mod/Material/App/MaterialLibrary.cpp +++ b/src/Mod/Material/App/MaterialLibrary.cpp @@ -196,7 +196,7 @@ void MaterialLibraryLocal::deleteRecursive(const QString& path) } QString filePath = getLocalPath(path); - auto manager = MaterialManager::getManager(); + auto& manager = MaterialManager::getManager(); QFileInfo info(filePath); if (info.isDir()) { diff --git a/src/Mod/Material/App/MaterialManager.h b/src/Mod/Material/App/MaterialManager.h index eb8ca61995..409a4e591e 100644 --- a/src/Mod/Material/App/MaterialManager.h +++ b/src/Mod/Material/App/MaterialManager.h @@ -149,6 +149,9 @@ public: private: MaterialManager(); + + FC_DISABLE_COPY_MOVE(MaterialManager); + static void initManagers(); static MaterialManager* _manager; diff --git a/src/Mod/Material/App/Materials.cpp b/src/Mod/Material/App/Materials.cpp index 97c3841c60..4d53099d3b 100644 --- a/src/Mod/Material/App/Materials.cpp +++ b/src/Mod/Material/App/Materials.cpp @@ -1393,7 +1393,7 @@ void Material::saveModels(QTextStream& stream, bool saveInherited) const } auto& modelManager = ModelManager::getManager(); - auto materialManager = MaterialManager::getManager(); + auto& materialManager = MaterialManager::getManager(); bool inherited = saveInherited && (_parentUuid.size() > 0); std::shared_ptr parent; @@ -1447,7 +1447,7 @@ void Material::saveAppearanceModels(QTextStream& stream, bool saveInherited) con } auto& modelManager = ModelManager::getManager(); - auto materialManager = MaterialManager::getManager(); + auto& materialManager = MaterialManager::getManager(); bool inherited = saveInherited && (_parentUuid.size() > 0); std::shared_ptr parent;