From e317e4fffac43de7cbdbcfda8879955f86ba8eb5 Mon Sep 17 00:00:00 2001 From: sageweil Date: Fri, 20 Oct 2006 21:42:15 +0000 Subject: [PATCH] bugfix git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@940 29311d96-e01e-0410-9327-a35deaab8ce9 --- ceph/include/buffer.h | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/ceph/include/buffer.h b/ceph/include/buffer.h index 3802fedeee2eb..ff0f5b19d4478 100644 --- a/ceph/include/buffer.h +++ b/ceph/include/buffer.h @@ -269,9 +269,9 @@ public: void set_offset(unsigned o) { _off = o; } void set_length(unsigned l) { _len = l; } - void append(char *p, unsigned l) { + void append(const char *p, unsigned l) { assert(_raw); - assert(unused_tail_length() <= l); + assert(l <= unused_tail_length()); memcpy(c_str() + _len, p, l); _len += l; } @@ -292,6 +292,7 @@ public: } }; + friend std::ostream& operator<<(std::ostream& out, const buffer::ptr& bp); /* * list - the useful bit! @@ -485,13 +486,10 @@ public: if (!_buffers.empty()) { unsigned avail = _buffers.back().unused_tail_length(); if (avail > 0) { - //cout << "copying up to " << len << " into tail " << avail << " bytes of tail buf" << endl; + //std::cout << "copying up to " << len << " into tail " << avail << " bytes of tail buf " << _buffers.back() << std::endl; if (avail > len) avail = len; - unsigned blen = _buffers.back().length(); - memcpy(_buffers.back().c_str() + blen, data, avail); - blen += avail; - _buffers.back().set_length(blen); + _buffers.back().append(data, avail); _len += avail; data += avail; len -= avail; @@ -502,7 +500,7 @@ public: // just add another buffer. // alloc a bit extra, in case we do a bunch of appends. FIXME be smarter! - if (alen < 1024) alen = 1024; + if (alen < 4096) alen = 4096; ptr bp = create(alen); bp.set_length(len); bp.copy_in(0, len, data); -- 2.39.5