epee: fixup KV_SERIALIZE_OPT to work in more cases

This commit is contained in:
moneromooo-monero 2017-08-09 09:30:22 +01:00
parent bfd2532ea5
commit 7482253a6d
No known key found for this signature in database
GPG Key ID: 686F07454D6CEFC3

View File

@ -70,10 +70,13 @@ public: \
#define KV_SERIALIZE_N(varialble, val_name) \ #define KV_SERIALIZE_N(varialble, val_name) \
epee::serialization::selector<is_store>::serialize(this_ref.varialble, stg, hparent_section, val_name); epee::serialization::selector<is_store>::serialize(this_ref.varialble, stg, hparent_section, val_name);
template<typename T> inline void serialize_default(const T &t, T v) { }
template<typename T> inline void serialize_default(T &t, T v) { t = v; }
#define KV_SERIALIZE_OPT_N(variable, val_name, default_value) \ #define KV_SERIALIZE_OPT_N(variable, val_name, default_value) \
do { \ do { \
if (!epee::serialization::selector<is_store>::serialize(this_ref.variable, stg, hparent_section, val_name)) \ if (!epee::serialization::selector<is_store>::serialize(this_ref.variable, stg, hparent_section, val_name)) \
this_ref.variable = default_value; \ epee::serialize_default(this_ref.variable, default_value); \
} while (0); } while (0);
#define KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, val_name) \ #define KV_SERIALIZE_VAL_POD_AS_BLOB_FORCE_N(varialble, val_name) \