wrap static variable into function

This commit is contained in:
Joachim Schoeberl 2024-01-09 10:21:06 +01:00
parent fda7cfa2bc
commit 54287bbfbb

View File

@ -10,24 +10,31 @@
namespace ngcore namespace ngcore
{ {
// clang-tidy should ignore this static object // clang-tidy should ignore this static object
static std::map<std::string, detail::ClassArchiveInfo> type_register; // NOLINT // static std::map<std::string, detail::ClassArchiveInfo> type_register; // NOLINT
auto& GetTypeRegister()
{
static std::map<std::string, detail::ClassArchiveInfo> type_register;
return type_register;
}
const detail::ClassArchiveInfo& Archive :: GetArchiveRegister(const std::string& classname) const detail::ClassArchiveInfo& Archive :: GetArchiveRegister(const std::string& classname)
{ {
// if(type_register == nullptr) type_register = // if(type_register == nullptr) type_register =
// std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>(); // std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>();
return (type_register)[classname]; return GetTypeRegister()[classname];
} }
void Archive :: SetArchiveRegister(const std::string& classname, const detail::ClassArchiveInfo& info) void Archive :: SetArchiveRegister(const std::string& classname, const detail::ClassArchiveInfo& info)
{ {
// if(type_register == nullptr) type_register = // if(type_register == nullptr) type_register =
// std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>(); // std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>();
(type_register)[classname] = info; GetTypeRegister()[classname] = info;
} }
bool Archive :: IsRegistered(const std::string& classname) bool Archive :: IsRegistered(const std::string& classname)
{ {
// if(type_register == nullptr) type_register = // if(type_register == nullptr) type_register =
// std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>(); // std::make_unique<std::map<std::string, detail::ClassArchiveInfo>>();
return type_register.count(classname) != 0; return GetTypeRegister().count(classname) != 0;
} }
#ifdef NETGEN_PYTHON #ifdef NETGEN_PYTHON