summaryrefslogtreecommitdiff
path: root/src/buffer_manager.cc
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2015-02-23 20:39:56 +0000
committerMaxime Coste <frrrwww@gmail.com>2015-02-23 20:39:56 +0000
commit0a6901899d844a51ddda3727b587736055b65857 (patch)
treea522f687a95cf5ed024af9ab544deac6bb6b83f0 /src/buffer_manager.cc
parent37a14032956003c6301ff862053e90cbd153ef2c (diff)
Use RefPtr as SafePtr backend
Diffstat (limited to 'src/buffer_manager.cc')
-rw-r--r--src/buffer_manager.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc
index 74cacdb2..db3e37c5 100644
--- a/src/buffer_manager.cc
+++ b/src/buffer_manager.cc
@@ -36,7 +36,7 @@ void BufferManager::unregister_buffer(Buffer& buffer)
{
for (auto it = m_buffers.begin(); it != m_buffers.end(); ++it)
{
- if (*it == &buffer)
+ if (it->get() == &buffer)
{
m_buffers.erase(it);
return;
@@ -44,7 +44,7 @@ void BufferManager::unregister_buffer(Buffer& buffer)
}
for (auto it = m_buffer_trash.begin(); it != m_buffer_trash.end(); ++it)
{
- if (*it == &buffer)
+ if (it->get() == &buffer)
{
m_buffer_trash.erase(it);
return;
@@ -57,7 +57,7 @@ void BufferManager::delete_buffer(Buffer& buffer)
{
for (auto it = m_buffers.begin(); it != m_buffers.end(); ++it)
{
- if (*it == &buffer)
+ if (it->get() == &buffer)
{
if (ClientManager::has_instance())
ClientManager::instance().ensure_no_client_uses_buffer(buffer);
@@ -98,7 +98,8 @@ Buffer& BufferManager::get_buffer(StringView name)
void BufferManager::set_last_used_buffer(Buffer& buffer)
{
- auto it = find(m_buffers, &buffer);
+ auto it = find_if(m_buffers, [&buffer](const SafePtr<Buffer>& p)
+ { return p.get() == &buffer; });
kak_assert(it != m_buffers.end());
m_buffers.erase(it);
m_buffers.emplace(m_buffers.begin(), &buffer);