aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/serialization
diff options
context:
space:
mode:
authorluigi1111 <luigi1111w@gmail.com>2018-09-04 13:19:58 -0500
committerluigi1111 <luigi1111w@gmail.com>2018-09-04 13:19:58 -0500
commit77ed11e62707e00e74e5f2c599b811719b7aaaa0 (patch)
tree41c89eb9493abb3d2dfba1684bb98ae03f5ff602 /contrib/epee/include/serialization
parentMerge pull request #4269 (diff)
parentwallet2: ask for a binary output distribution, for speed (diff)
downloadmonero-77ed11e62707e00e74e5f2c599b811719b7aaaa0.tar.xz
Merge pull request #4270
29dea03 epee: resize vectors where possible in serialization (moneromooo-monero) 76affd9 epee: some speedup in parsing (moneromooo-monero) dc6c069 db_lmdb: speedup the get_output_distribution common case (moneromooo-monero) 76ac5a8 wallet2: ask for a binary output distribution, for speed (moneromooo-monero)
Diffstat (limited to 'contrib/epee/include/serialization')
-rw-r--r--contrib/epee/include/serialization/keyvalue_serialization_overloads.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/contrib/epee/include/serialization/keyvalue_serialization_overloads.h b/contrib/epee/include/serialization/keyvalue_serialization_overloads.h
index 09087f785..15c95f07a 100644
--- a/contrib/epee/include/serialization/keyvalue_serialization_overloads.h
+++ b/contrib/epee/include/serialization/keyvalue_serialization_overloads.h
@@ -35,6 +35,11 @@
namespace epee
{
+ namespace
+ {
+ template<class C> void hint_resize(C &container, size_t size) {}
+ template<class C> void hint_resize(std::vector<C> &container, size_t size) { container.reserve(size); }
+ }
namespace serialization
{
@@ -158,6 +163,7 @@ namespace epee
false,
"size in blob " << loaded_size << " not have not zero modulo for sizeof(value_type) = " << sizeof(typename stl_container::value_type) << ", type " << typeid(typename stl_container::value_type).name());
size_t count = (loaded_size/sizeof(typename stl_container::value_type));
+ hint_resize(container, count);
for(size_t i = 0; i < count; i++)
container.insert(container.end(), *(pelem++));
}