buffer.h: fix BufferBuilder const for_each

GitOrigin-RevId: a264a7d12975e57c517303e4699e2e73eb1d2211
This commit is contained in:
Arseny Smirnov 2019-07-01 14:37:23 +02:00
parent 620e4221f3
commit f74d52b9be

View File

@ -288,6 +288,10 @@ class BufferWriter {
auto end = buffer_->end_.load(std::memory_order_relaxed); auto end = buffer_->end_.load(std::memory_order_relaxed);
return MutableSlice(buffer_->data_ + buffer_->begin_, buffer_->data_ + end); return MutableSlice(buffer_->data_ + buffer_->begin_, buffer_->data_ + end);
} }
Slice as_slice() const {
auto end = buffer_->end_.load(std::memory_order_relaxed);
return Slice(buffer_->data_ + buffer_->begin_, buffer_->data_ + end);
}
MutableSlice prepare_prepend() { MutableSlice prepare_prepend() {
if (is_null()) { if (is_null()) {
@ -743,13 +747,13 @@ class BufferBuilder {
template <class F> template <class F>
void for_each(F &&f) const & { void for_each(F &&f) const & {
for (auto &slice : reversed(to_prepend_)) { for (auto &slice : reversed(to_prepend_)) {
f(slice); f(slice.as_slice());
} }
if (!buffer_writer_.empty()) { if (!buffer_writer_.empty()) {
f(buffer_writer_.as_buffer_slice()); f(buffer_writer_.as_slice());
} }
for (auto &slice : to_append_) { for (auto &slice : to_append_) {
f(slice); f(slice.as_slice());
} }
} }
template <class F> template <class F>