Unselect and freeze before starting reset
In some cases, the BeforeReset() will cause an iteration over the tree elements. If we have deleted an element before doing this, we risk a corruption/crash. Fixes https://gitlab.com/kicad/code/kicad/issues/6192
This commit is contained in:
parent
fc6fc88219
commit
3bd080b64e
|
@ -195,7 +195,6 @@ void LIB_TREE_MODEL_ADAPTER::UpdateSearchString( wxString const& aSearch )
|
|||
// not return invalid data to the UI, since this invalid data can cause crashes.
|
||||
// This is different than the update locker, which locks the UI aspects only.
|
||||
wxWindowUpdateLocker updateLock( m_widget );
|
||||
BeforeReset();
|
||||
|
||||
// Even with the updateLock, wxWidgets sometimes ties its knickers in
|
||||
// a knot when trying to run a wxdataview_selection_changed_callback()
|
||||
|
@ -203,6 +202,7 @@ void LIB_TREE_MODEL_ADAPTER::UpdateSearchString( wxString const& aSearch )
|
|||
// https://bugs.launchpad.net/kicad/+bug/1756255
|
||||
m_widget->UnselectAll();
|
||||
Freeze();
|
||||
BeforeReset();
|
||||
|
||||
m_tree.ResetScore();
|
||||
|
||||
|
|
Loading…
Reference in New Issue