Workaround constinit in logs.cpp

Use unique_ptr wrapper
This commit is contained in:
Ivan 2024-11-05 21:51:31 +03:00 committed by GitHub
parent de0a16ab65
commit c31cb216d2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -397,8 +397,14 @@ void logs::message::broadcast(const char* fmt, const fmt_type_info* sup, ...) co
g_tls_log_control(fmt, 0);
// Get text, extract va_args
constinit thread_local std::string text;
constinit thread_local std::vector<u64> args;
constinit thread_local std::unique_ptr<std::string> text_;
constinit thread_local std::unique_ptr<std::vector<u64>> args_;
if (!text_)
text_ = std::make_unique<std::string>();
if (!args_)
args_ = std::make_unique<std::vector<u64>>();
auto& text = *text_.get();
auto& args = *args_.get();
static constexpr fmt_type_info empty_sup{};