Gui: fix crash on Document resetEdit

This commit is contained in:
Zheng, Lei
2020-02-12 14:45:13 +08:00
committed by wwmayer
parent 644c277fbb
commit 6556276c5a
2 changed files with 8 additions and 1 deletions

View File

@@ -462,7 +462,12 @@ void Document::_resetEdit(void)
}
d->_editViewProvider->finishEditing();
if (d->_editViewProvider->isDerivedFrom(ViewProviderDocumentObject::getClassTypeId()))
// Have to check d->_editViewProvider below, because there is a chance
// the editing object gets deleted inside the above call to
// 'finishEditing()', which will trigger our slotDeletedObject(), which
// nullifies _editViewProvider.
if (d->_editViewProvider && d->_editViewProvider->isDerivedFrom(ViewProviderDocumentObject::getClassTypeId()))
signalResetEdit(*(static_cast<ViewProviderDocumentObject*>(d->_editViewProvider)));
d->_editViewProvider = 0;