From 187947e8d8fa2501c1058744e957f6e426548cae Mon Sep 17 00:00:00 2001 From: Marek Roszko Date: Sun, 19 Feb 2023 10:08:49 -0500 Subject: [PATCH] Fix crash deleting project tree items Fixes sentry KICAD-C2 (cherry picked from commit 7d25b6de8709483a7498cc2c8b451c91ebcba60d) --- kicad/project_tree_pane.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/kicad/project_tree_pane.cpp b/kicad/project_tree_pane.cpp index a6de4070f1..356fd1d367 100644 --- a/kicad/project_tree_pane.cpp +++ b/kicad/project_tree_pane.cpp @@ -946,7 +946,16 @@ std::vector PROJECT_TREE_PANE::GetSelectedData() m_TreeProject->GetSelections( selection ); for( auto it = selection.begin(); it != selection.end(); it++ ) - data.push_back( GetItemIdData( *it ) ); + { + PROJECT_TREE_ITEM* item = GetItemIdData( *it ); + if( !item ) + { + wxLogDebug( "Null tree item returned for selection, dynamic_cast failed?" ); + continue; + } + + data.push_back( item ); + } return data; } @@ -1107,7 +1116,7 @@ void PROJECT_TREE_PANE::onFileSystemEvent( wxFileSystemWatcherEvent& event ) // of the event, even though the file isn't there anymore. PROJECT_TREE_ITEM* rootData = GetItemIdData( root_id ); - if( newpath.Exists() && ( newfn != rootData->GetFileName() ) ) + if( rootData && newpath.Exists() && ( newfn != rootData->GetFileName() ) ) { wxTreeItemId newroot_id = findSubdirTreeItem( newdir ); wxTreeItemId newitem = addItemToProjectTree( newfn, newroot_id, nullptr, true );