summaryrefslogtreecommitdiff
path: root/src/buffer_manager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/buffer_manager.cc')
-rw-r--r--src/buffer_manager.cc13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/buffer_manager.cc b/src/buffer_manager.cc
index f9030b0a..66206fe0 100644
--- a/src/buffer_manager.cc
+++ b/src/buffer_manager.cc
@@ -36,15 +36,14 @@ Buffer* BufferManager::create_buffer(String name, Buffer::Flags flags,
throw runtime_error{"buffer name is already in use"};
}
- m_buffers.emplace(m_buffers.begin(),
- new Buffer{std::move(name), flags, data, fs_timestamp});
- auto& buffer = *m_buffers.front();
- buffer.on_registered();
+ m_buffers.push_back(std::make_unique<Buffer>(std::move(name), flags, data, fs_timestamp));
+ auto* buffer = m_buffers.back().get();
+ buffer->on_registered();
- if (contains(m_buffer_trash, &buffer))
+ if (contains(m_buffer_trash, buffer))
throw runtime_error{"Buffer got removed during its creation"};
- return &buffer;
+ return buffer;
}
void BufferManager::delete_buffer(Buffer& buffer)
@@ -86,7 +85,7 @@ Buffer& BufferManager::get_first_buffer()
if (all_of(m_buffers, [](auto& b) { return (b->flags() & Buffer::Flags::Debug); }))
create_buffer("*scratch*", Buffer::Flags::None);
- return *m_buffers.front();
+ return *m_buffers.back();
}
void BufferManager::backup_modified_buffers()