mirror of
https://github.com/transmission/transmission.git
synced 2026-02-14 23:19:34 +00:00
refactor: register converters in tr_lib_init() (#8023)
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user