]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
common/buffer: add constructor to create ptr with specified contents
authorSamuel Just <sjust@redhat.com>
Mon, 23 Dec 2019 01:44:13 +0000 (17:44 -0800)
committerSamuel Just <sjust@redhat.com>
Thu, 7 May 2020 06:40:14 +0000 (23:40 -0700)
Signed-off-by: Samuel Just <sjust@redhat.com>
src/common/buffer.cc
src/include/buffer.h

index 7f9acb511e780257a9a543f3616fef83e1ace3f6..65ef5964cfc66f72c81ae38fc6d67ebb1590fb4a 100644 (file)
@@ -299,6 +299,11 @@ static ceph::spinlock debug_lock;
   ceph::unique_leakable_ptr<buffer::raw> buffer::create(unsigned len) {
     return buffer::create_aligned(len, sizeof(size_t));
   }
+  ceph::unique_leakable_ptr<buffer::raw> buffer::create(unsigned len, char c) {
+    auto ret = buffer::create_aligned(len, sizeof(size_t));
+    memset(ret->data, c, len);
+    return ret;
+  }
   ceph::unique_leakable_ptr<buffer::raw>
   buffer::create_in_mempool(unsigned len, int mempool) {
     return buffer::create_aligned_in_mempool(len, sizeof(size_t), mempool);
index c8805cc512059a990d2ac87b4641a6e012f87625..80e990f30d62e792eeea6fe584f0013db0128e2c 100644 (file)
@@ -157,6 +157,7 @@ inline namespace v15_2_0 {
    */
   ceph::unique_leakable_ptr<raw> copy(const char *c, unsigned len);
   ceph::unique_leakable_ptr<raw> create(unsigned len);
+  ceph::unique_leakable_ptr<raw> create(unsigned len, char c);
   ceph::unique_leakable_ptr<raw> create_in_mempool(unsigned len, int mempool);
   ceph::unique_leakable_ptr<raw> claim_char(unsigned len, char *buf);
   ceph::unique_leakable_ptr<raw> create_malloc(unsigned len);