diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/commands.cc | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/commands.cc b/src/commands.cc index 805a4234..c86cc15c 100644 --- a/src/commands.cc +++ b/src/commands.cc @@ -1572,13 +1572,10 @@ void context_wrap(const ParametersParser& parser, Context& context, Func func) }; if (*bufnames == "*") { - // copy buffer list as we might be mutating the buffer list - // in the loop. - auto ptrs = BufferManager::instance() | - transform(std::mem_fn(&std::unique_ptr<Buffer>::get)) | - filter([](Buffer* buf) { return not (buf->flags() & Buffer::Flags::Debug); }); - Vector<SafePtr<Buffer>> buffers{ptrs.begin(), ptrs.end()}; - for (auto buffer : buffers) + for (auto&& buffer : BufferManager::instance() + | transform(std::mem_fn(&std::unique_ptr<Buffer>::get)) + | filter([](Buffer* buf) { return not (buf->flags() & Buffer::Flags::Debug); }) + | gather<Vector<SafePtr<Buffer>>>()) // gather as we might be mutating the buffer list in the loop. context_wrap_for_buffer(*buffer); } else |
