diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2015-09-08 13:10:22 +0100 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2015-09-08 13:10:22 +0100 |
| commit | 182cc368a092ac029909a6fa746ba565bad1cad1 (patch) | |
| tree | 03432c7422d301852645615f50fd8645daf46178 /src/buffer_manager.cc | |
| parent | fede8da14b5f65a301ce3459a93a95aeffce67d7 (diff) | |
Tweak BufferManager::delete_buffer implementation
Diffstat (limited to 'src/buffer_manager.cc')
| -rw-r--r-- | src/buffer_manager.cc | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc index dc4c82bf..e7d7d5c2 100644 --- a/src/buffer_manager.cc +++ b/src/buffer_manager.cc @@ -58,19 +58,15 @@ void BufferManager::unregister_buffer(Buffer& buffer) void BufferManager::delete_buffer(Buffer& buffer) { - for (auto it = m_buffers.begin(); it != m_buffers.end(); ++it) - { - if (it->get() == &buffer) - { - if (ClientManager::has_instance()) - ClientManager::instance().ensure_no_client_uses_buffer(buffer); + auto it = find_if(m_buffers, [&](const SafePtr<Buffer>& p) + { return p.get() == &buffer; }); + kak_assert(it != m_buffers.end()); - m_buffers.erase(it); - m_buffer_trash.emplace_back(&buffer); - return; - } - } - kak_assert(false); + if (ClientManager::has_instance()) + ClientManager::instance().ensure_no_client_uses_buffer(buffer); + + m_buffers.erase(it); + m_buffer_trash.emplace_back(&buffer); } Buffer* BufferManager::get_buffer_ifp(StringView name) |
