From: Casey Bodley Date: Tue, 16 May 2017 19:03:05 +0000 (-0400) Subject: denc: add reserve() to boost::flat_set/map decode X-Git-Tag: v12.1.0~256^2~2^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fe4d750efef6827091e7eb4f0f3d55e4243e1e18;p=ceph.git denc: add reserve() to boost::flat_set/map decode by reserving space up front, we avoid rellocating storage as elements are inserted Signed-off-by: Casey Bodley --- diff --git a/src/include/encoding.h b/src/include/encoding.h index 953420e8991..0013728efed 100644 --- a/src/include/encoding.h +++ b/src/include/encoding.h @@ -512,6 +512,7 @@ decode(boost::container::flat_set& s, bufferlist::iterator& p) __u32 n; decode(n, p); s.clear(); + s.reserve(n); while (n--) { T v; decode(v, p); @@ -532,6 +533,7 @@ inline typename std::enable_if::type decode_nohead(int len, boost::container::flat_set& s, bufferlist::iterator& p) { + s.reserve(len); for (int i=0; i& m, { __u32 n; decode(n, p); + m.reserve(m.size() + n); while (n--) { T k; decode(k, p);