From cff6dd55027a008939f06ba6dd75ebcaf2016bd9 Mon Sep 17 00:00:00 2001 From: Raoul Rubien Date: Sun, 21 Dec 2025 11:38:24 +0100 Subject: [PATCH] review result part 0: -Wuse-after-free vs wxWidget --- src/slic3r/GUI/ObjectDataViewModel.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/ObjectDataViewModel.cpp b/src/slic3r/GUI/ObjectDataViewModel.cpp index a4323c4a83..4f1b40f8b1 100644 --- a/src/slic3r/GUI/ObjectDataViewModel.cpp +++ b/src/slic3r/GUI/ObjectDataViewModel.cpp @@ -1048,8 +1048,12 @@ wxDataViewItem ObjectDataViewModel::Delete(const wxDataViewItem &item) ObjectDataViewModelNode* last_instance_node = node_parent->GetNthChild(0); PrintIndicator last_instance_printable = last_instance_node->IsPrintable(); node_parent->GetChildren().Remove(last_instance_node); - ItemDeleted(parent, wxDataViewItem(last_instance_node)); delete last_instance_node; + // `delete` before `ItemDeleted()` is valid wxWidget pattern +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wuse-after-free" + ItemDeleted(parent, wxDataViewItem(last_instance_node)); +#pragma GCC diagnostic pop ObjectDataViewModelNode* obj_node = node_parent->GetParent(); obj_node->set_printable_icon(last_instance_printable);