]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
src/common/buffer.cc: remove unnecessary copy in sha1()
authormyoungwon oh <omwmw@sk.com>
Wed, 12 Sep 2018 12:01:05 +0000 (21:01 +0900)
committermyoungwon oh <omwmw@sk.com>
Wed, 12 Sep 2018 12:01:05 +0000 (21:01 +0900)
Signed-off-by: Myoungwon Oh <omwmw@sk.com>
src/common/buffer.cc

index 731a5e5c17b6cecc10eaa73508aacc4a0b2a9d31..b88e74a9caf28d923b5fe5bba15f34876e6e0ce4 100644 (file)
@@ -2476,21 +2476,17 @@ using ceph::crypto::SHA1;
 boost::optional<sha1_digest_t> 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<ptr>::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;