From 182cc368a092ac029909a6fa746ba565bad1cad1 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 8 Sep 2015 13:10:22 +0100 Subject: [PATCH] Tweak BufferManager::delete_buffer implementation --- src/buffer_manager.cc | 20 ++++++++------------ 1 file 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& 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)