diff --git a/src/univalue/include/univalue.h b/src/univalue/include/univalue.h index da12157555425..0e5404eb1dfa7 100644 --- a/src/univalue/include/univalue.h +++ b/src/univalue/include/univalue.h @@ -70,6 +70,8 @@ class UniValue { size_t size() const { return values.size(); } + void reserve(size_t new_cap); + void getObjMap(std::map& kv) const; bool checkObject(const std::map& memberTypes) const; const UniValue& operator[](const std::string& key) const; diff --git a/src/univalue/lib/univalue.cpp b/src/univalue/lib/univalue.cpp index 656d2e8203004..4d37c81fe8703 100644 --- a/src/univalue/lib/univalue.cpp +++ b/src/univalue/lib/univalue.cpp @@ -240,3 +240,10 @@ const UniValue& UniValue::find_value(std::string_view key) const return NullUniValue; } +void UniValue::reserve(size_t new_cap) +{ + values.reserve(new_cap); + if (typ == VOBJ) { + keys.reserve(new_cap); + } +}