From 9352f34ad0ac687786e14281c3c4dbb8b0b96ca5 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Mon, 22 May 2023 09:50:15 +0800 Subject: [PATCH] FIX: fix some crashes Change-Id: Iab830fd58c2a6abc77787cba95d530f9b53d7b52 --- src/slic3r/GUI/GUI_ObjectList.cpp | 2 +- src/slic3r/GUI/NotificationManager.cpp | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/slic3r/GUI/GUI_ObjectList.cpp b/src/slic3r/GUI/GUI_ObjectList.cpp index 3d0febd924..d45c468a9e 100644 --- a/src/slic3r/GUI/GUI_ObjectList.cpp +++ b/src/slic3r/GUI/GUI_ObjectList.cpp @@ -3186,7 +3186,7 @@ void ObjectList::part_selection_changed() for (auto item : sels) { int obj_idx = m_objects_model->GetObjectIdByItem(item); const ModelObject *obj = object(obj_idx); - if (obj->is_cut()) { + if (obj && obj->is_cut()) { if (cut_objects.find(obj->cut_id) == cut_objects.end()) cut_objects[obj->cut_id] = std::set{obj_idx}; else diff --git a/src/slic3r/GUI/NotificationManager.cpp b/src/slic3r/GUI/NotificationManager.cpp index 05ef45a0c8..551bd2e568 100644 --- a/src/slic3r/GUI/NotificationManager.cpp +++ b/src/slic3r/GUI/NotificationManager.cpp @@ -1633,7 +1633,10 @@ void NotificationManager::push_validate_error_notification(StringObjectException void NotificationManager::push_slicing_error_notification(const std::string &text, std::vector objs) { std::vector ids; - for (auto optr : objs) { ids.push_back(optr->id()); } + for (auto optr : objs) { + if (optr) + ids.push_back(optr->id()); + } auto callback = !objs.empty() ? [ids](wxEvtHandler *) { auto & objects = wxGetApp().model().objects; std::vector ovs; @@ -1650,7 +1653,10 @@ void NotificationManager::push_slicing_error_notification(const std::string &tex auto link = callback ? _u8L("Jump to") : ""; if (!objs.empty()) { link += " ["; - for (auto obj : objs) { link += obj->name + ", "; } + for (auto obj : objs) { + if (obj) + link += obj->name + ", "; + } if (!objs.empty()) { link.pop_back(); link.pop_back();