From 4848babe78cae5305983a455c37265750725637f Mon Sep 17 00:00:00 2001 From: Olivier BICHLER <olivier.bichler@cea.fr> Date: Fri, 11 Oct 2024 11:31:06 +0200 Subject: [PATCH] Fixed possible segfault --- include/aidge/utils/DynamicAttributes.hpp | 8 ++------ src/utils/DynamicAttributes.cpp | 6 +++++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/aidge/utils/DynamicAttributes.hpp b/include/aidge/utils/DynamicAttributes.hpp index dc066664b..52056852b 100644 --- a/include/aidge/utils/DynamicAttributes.hpp +++ b/include/aidge/utils/DynamicAttributes.hpp @@ -39,12 +39,8 @@ namespace Aidge { ///\todo managing complex types or excluding non-trivial, non-aggregate types class DynamicAttributes : public Attributes { public: - DynamicAttributes() { - mAnyUtils.emplace(typeid(DynamicAttributes), std::unique_ptr<AnyUtils<DynamicAttributes>>(new AnyUtils<DynamicAttributes>())); - } - DynamicAttributes(const std::map<std::string, future_std::any>& attrs): mAttrs(attrs) { - mAnyUtils.emplace(typeid(DynamicAttributes), std::unique_ptr<AnyUtils<DynamicAttributes>>(new AnyUtils<DynamicAttributes>())); - } + DynamicAttributes() = default; + DynamicAttributes(const std::map<std::string, future_std::any>& attrs): mAttrs(attrs) {} /** * \brief Returning an Attribute identified by its name diff --git a/src/utils/DynamicAttributes.cpp b/src/utils/DynamicAttributes.cpp index 3bbf40038..6e6486160 100644 --- a/src/utils/DynamicAttributes.cpp +++ b/src/utils/DynamicAttributes.cpp @@ -11,7 +11,11 @@ #include "aidge/utils/DynamicAttributes.hpp" -std::map<std::type_index, std::unique_ptr<Aidge::DynamicAttributes::AnyUtils_>> Aidge::DynamicAttributes::mAnyUtils; +std::map<std::type_index, std::unique_ptr<Aidge::DynamicAttributes::AnyUtils_>> Aidge::DynamicAttributes::mAnyUtils = []() { + std::map<std::type_index, std::unique_ptr<Aidge::DynamicAttributes::AnyUtils_>> m; + m.emplace(typeid(DynamicAttributes), std::unique_ptr<AnyUtils<DynamicAttributes>>(new AnyUtils<DynamicAttributes>())); + return m; +}(); template<> void Aidge::DynamicAttributes::setAttr<future_std::any>(const std::string& name, const future_std::any& value) { -- GitLab