]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os: Transaction::_update_op_bl doesn't copy bl::_buffers anymore.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Mon, 8 Oct 2018 10:14:21 +0000 (12:14 +0200)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Sat, 1 Dec 2018 20:22:23 +0000 (21:22 +0100)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/os/ObjectStore.h

index dc426aca2925fb1958bc5b46325e8d2cf59b59d2..9810c9630aa7bd3697ee3abcf7a4a4cfbc619e38 100644 (file)
@@ -695,15 +695,11 @@ public:
       bufferlist& bl,
       vector<__le32> &cm,
       vector<__le32> &om) {
+      for (auto& bp : bl.buffers()) {
+        ceph_assert(bp.length() % sizeof(Op) == 0);
 
-      ceph::bufferlist::buffers_t list = bl.buffers();
-      ceph::bufferlist::buffers_t::iterator p;
-
-      for(p = list.begin(); p != list.end(); ++p) {
-        ceph_assert(p->length() % sizeof(Op) == 0);
-
-        char* raw_p = p->c_str();
-        char* raw_end = raw_p + p->length();
+        char* raw_p = const_cast<char*>(bp.c_str());
+        char* raw_end = raw_p + bp.length();
         while (raw_p < raw_end) {
           _update_op(reinterpret_cast<Op*>(raw_p), cm, om);
           raw_p += sizeof(Op);