From f3d21c81771f96f03c099a0ee16d7c91d3b32d82 Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Wed, 12 Sep 2018 21:01:05 +0900 Subject: [PATCH] src/common/buffer.cc: remove unnecessary copy in sha1() Signed-off-by: Myoungwon Oh --- src/common/buffer.cc | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/src/common/buffer.cc b/src/common/buffer.cc index 731a5e5c17b6c..b88e74a9caf28 100644 --- a/src/common/buffer.cc +++ b/src/common/buffer.cc @@ -2476,21 +2476,17 @@ using ceph::crypto::SHA1; boost::optional buffer::list::sha1() { ptr nb; - unsigned pos = 0; unsigned char fingerprint[CEPH_CRYPTO_SHA1_DIGESTSIZE]; if (_len == 0) { return boost::none; } nb = buffer::create(_len); + SHA1 sha1_gen; for (std::list::iterator it = _buffers.begin(); it != _buffers.end(); ++it) { - nb.copy_in(pos, it->length(), it->c_str(), false); - pos += it->length(); + sha1_gen.Update((const unsigned char *)it->c_str(), it->length()); } - int size = length(); - SHA1 sha1_gen; - sha1_gen.Update((const unsigned char *)nb.c_str(), size); sha1_gen.Final(fingerprint); sha1_digest_t fp_t(fingerprint); return fp_t; -- 2.39.5