summaryrefslogtreecommitdiff
path: root/src/buffer_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-09-08 13:10:22 +0100
committerMaxime Coste <frrrwww@gmail.com>2015-09-08 13:10:22 +0100
commit182cc368a092ac029909a6fa746ba565bad1cad1 (patch)
tree03432c7422d301852645615f50fd8645daf46178 /src/buffer_manager.cc
parentfede8da14b5f65a301ce3459a93a95aeffce67d7 (diff)
Tweak BufferManager::delete_buffer implementation
Diffstat (limited to 'src/buffer_manager.cc')
-rw-r--r--src/buffer_manager.cc20
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)