summaryrefslogtreecommitdiff
path: root/src/common/buffer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/buffer.cc')
-rw-r--r--src/common/buffer.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/common/buffer.cc b/src/common/buffer.cc
index 0424887139e..24a61724c8e 100644
--- a/src/common/buffer.cc
+++ b/src/common/buffer.cc
@@ -990,11 +990,14 @@ void buffer::list::rebuild_page_aligned()
*/
char *buffer::list::c_str()
{
- if (_buffers.size() == 0)
+ if (_buffers.empty())
return 0; // no buffers
- if (_buffers.size() > 1)
+
+ std::list<ptr>::const_iterator iter = _buffers.begin();
+ iter++;
+
+ if (iter != _buffers.end())
rebuild();
- assert(_buffers.size() == 1);
return _buffers.front().c_str(); // good, we're already contiguous.
}