mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-21 23:09:40 +00:00
Fix crash when closing master with children and grandchildren
In some cases, it is possible that the BufferPositionMap has dangling pointers. We thus check whether the Buffer is loaded before accessing it. Fixes: #10766 (cherry picked from commit 4f50cbcfe405a840459be8682fd4c7521b235798)
This commit is contained in:
parent
9df59aac63
commit
a18ad654e8
@ -3720,8 +3720,12 @@ void Buffer::listMacroNames(MacroNameSet & macros) const
|
||||
// loop over children
|
||||
Impl::BufferPositionMap::iterator it = d->children_positions.begin();
|
||||
Impl::BufferPositionMap::iterator end = d->children_positions.end();
|
||||
for (; it != end; ++it)
|
||||
it->first->listMacroNames(macros);
|
||||
for (; it != end; ++it) {
|
||||
Buffer * child = const_cast<Buffer *>(it->first);
|
||||
// The buffer might have been closed (see #10766).
|
||||
if (theBufferList().isLoaded(child))
|
||||
child->listMacroNames(macros);
|
||||
}
|
||||
|
||||
// call parent
|
||||
Buffer const * const pbuf = d->parent();
|
||||
|
Loading…
x
Reference in New Issue
Block a user