refactor: register converters in tr_lib_init() (#8023)

This commit is contained in:
Charles Kerr
2025-12-28 09:36:49 -06:00
committed by GitHub
parent 80a0e4d048
commit 91f39c56a8
2 changed files with 10 additions and 6 deletions

View File

@@ -128,8 +128,6 @@ public:
template<typename T>
static tr_variant serialize(T const& src)
{
ensure_default_converters();
if (converter_storage<T>.serialize != nullptr)
{
return converter_storage<T>.serialize(src);
@@ -161,8 +159,6 @@ public:
template<typename T>
static bool deserialize(tr_variant const& src, T* const ptgt)
{
ensure_default_converters();
if (converter_storage<T>.deserialize != nullptr)
{
return converter_storage<T>.deserialize(src, ptgt);
@@ -198,9 +194,9 @@ public:
converter_storage<T> = { deserialize, serialize };
}
private:
static void ensure_default_converters();
private:
template<typename T>
struct ConverterStorage
{

View File

@@ -53,6 +53,7 @@
#include "libtransmission/file.h"
#include "libtransmission/log.h"
#include "libtransmission/mime-types.h"
#include "libtransmission/serializer.h"
#include "libtransmission/tr-assert.h"
#include "libtransmission/tr-strbuf.h"
#include "libtransmission/utils.h"
@@ -785,7 +786,14 @@ std::unique_ptr<tr_net_init_mgr> tr_net_init_mgr::instance;
void tr_lib_init()
{
static auto once = std::once_flag{};
std::call_once(once, [] { tr_net_init_impl::tr_net_init_mgr::create(); });
std::call_once(
once,
[]
{
tr_net_init_impl::tr_net_init_mgr::create();
libtransmission::serializer::Converters::ensure_default_converters();
});
}
// --- mime-type