diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc index e19c889c..77c50288 100644 --- a/src/buffer_manager.cc +++ b/src/buffer_manager.cc @@ -9,6 +9,13 @@ namespace Kakoune struct name_not_unique : logic_error {}; +BufferManager::~BufferManager() +{ + // delete remaining buffers + while (not m_buffers.empty()) + delete m_buffers.begin()->second; +} + void BufferManager::register_buffer(Buffer* buffer) { assert(buffer); diff --git a/src/buffer_manager.hh b/src/buffer_manager.hh index e893d419..beba6652 100644 --- a/src/buffer_manager.hh +++ b/src/buffer_manager.hh @@ -26,6 +26,8 @@ public: Buffer* operator->() const { return parent_type::operator*().second; } }; + ~BufferManager(); + void register_buffer(Buffer* buffer); void unregister_buffer(Buffer* buffer);