ensure a buffer is not referenced a second time, just before actually deleting it
It can happen in certain case that a buffer gets referenced after it gets moved to the trash, for example when it gets deleted during its construction (due to BufCreate hook for example).
This commit is contained in:
parent
c41870ec98
commit
7a59a6d758
|
@ -114,7 +114,16 @@ void BufferManager::backup_modified_buffers()
|
|||
void BufferManager::clear_buffer_trash()
|
||||
{
|
||||
while (not m_buffer_trash.empty())
|
||||
delete m_buffer_trash.back().get();
|
||||
{
|
||||
Buffer* buffer = m_buffer_trash.back().get();
|
||||
|
||||
// Do that again, to be tolerant in some corner cases, where a buffer is
|
||||
// deleted during its creation
|
||||
if (ClientManager::has_instance())
|
||||
ClientManager::instance().ensure_no_client_uses_buffer(*buffer);
|
||||
|
||||
delete buffer;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user