From de4de65d46ff4f0fab913e7a7414855b89b90c98 Mon Sep 17 00:00:00 2001 From: Avi Kivity Date: Tue, 14 Oct 2014 18:02:52 +0300 Subject: [PATCH] virtio: convert vring::post() to accept an iterator to a range Instead of an iterator to a vector of buffers, accept an iterator to a container of buffers, increasing flexibility for callers. --- net/virtio.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/virtio.cc b/net/virtio.cc index dcb1b0be5b..3783ea5870 100644 --- a/net/virtio.cc +++ b/net/virtio.cc @@ -271,7 +271,10 @@ void vring::run() { template void vring::post(Iterator begin, Iterator end) { - std::for_each(begin, end, [&] (buffer_chain& bc) { + // Note: buffer_chain here is any container of buffer, not + // necessarily vector. + using buffer_chain = decltype(*begin); + std::for_each(begin, end, [this] (buffer_chain bc) { bool has_prev = false; unsigned prev_desc_idx = 0; for (auto i = bc.rbegin(); i != bc.rend(); ++i) {