From 026f4997e7531acff5d6677877d4e948088c46ac Mon Sep 17 00:00:00 2001 From: jfa Date: Wed, 11 May 2022 17:44:06 +0300 Subject: [PATCH] [bos #29933] [CEA 29931] Redundant constraint in SHAPER SIGSEGV --- src/PartSet/PartSet_OverconstraintListener.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/PartSet/PartSet_OverconstraintListener.cpp b/src/PartSet/PartSet_OverconstraintListener.cpp index 5db78193f..74b1bde5a 100644 --- a/src/PartSet/PartSet_OverconstraintListener.cpp +++ b/src/PartSet/PartSet_OverconstraintListener.cpp @@ -238,12 +238,11 @@ void PartSet_OverconstraintListener::processEvent(const std::shared_ptrconstraints(); - std::set::const_iterator - anIt = myObjectsToRemove.begin(), aLast = myObjectsToRemove.end(); + std::set::const_iterator anIt = myObjectsToRemove.begin(); PartSet_Module* aModule = dynamic_cast(myWorkshop->module()); - for (; anIt != aLast; anIt++) + for (; anIt != myObjectsToRemove.end(); ) { ObjectPtr anObject = *anIt; FeaturePtr aFeature = std::dynamic_pointer_cast(anObject); @@ -251,7 +250,9 @@ void PartSet_OverconstraintListener::processEvent(const std::shared_ptrsketchReentranceMgr()->isLastAutoConstraint(*anIt)) - myObjectsToRemove.erase(*anIt); + anIt = myObjectsToRemove.erase(anIt); + else + anIt++; } if (myObjectsToRemove.empty()) -- 2.39.2