serialization: fix infinite loops and clean up dispatching

Resolves #8687
This commit is contained in:
jeffro256 2023-11-17 02:19:45 -06:00
parent 8eab181fe1
commit 33e3f72d24
No known key found for this signature in database
GPG key ID: 6F79797A6E392442
9 changed files with 88 additions and 153 deletions

View file

@ -47,7 +47,7 @@ namespace serialization
typename std::enable_if<!use_pair_varint<T>(), bool>::type
serialize_pair_element(Archive& ar, T& e)
{
return ::do_serialize(ar, e);
return do_serialize(ar, e);
}
template<typename Archive, typename T>
@ -57,7 +57,7 @@ namespace serialization
static constexpr const bool previously_varint = std::is_same<uint64_t, T>();
if (!previously_varint && ar.varint_bug_backward_compatibility_enabled() && !typename Archive::is_saving())
return ::do_serialize(ar, e);
return do_serialize(ar, e);
ar.serialize_varint(e);
return true;
}