From: mpv Date: Tue, 17 May 2016 11:16:54 +0000 (+0300) Subject: Fix for crash on abort of Boolean with one argument set. X-Git-Tag: V_2.3.1~85 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=28d317bd93c0cecba59d648d76209cc3c6200ace;p=modules%2Fshaper.git Fix for crash on abort of Boolean with one argument set. --- diff --git a/src/Model/Model_Update.cpp b/src/Model/Model_Update.cpp index fc2f8dd98..4df33df2a 100755 --- a/src/Model/Model_Update.cpp +++ b/src/Model/Model_Update.cpp @@ -406,7 +406,7 @@ bool Model_Update::processFeature(FeaturePtr theFeature) if (aReasons.find(theFeature) == aReasons.end()) { std::set >::iterator aReasonIter = aReasons.begin(); for(; aReasonIter != aReasons.end(); aReasonIter++) { - if (*aReasonIter != theFeature) { + if (*aReasonIter != theFeature && (*aReasonIter)->data()->isValid()) { if (processFeature(*aReasonIter)) aIsModified = true; if ((*aReasonIter)->data()->execState() == ModelAPI_StateInvalidArgument) @@ -429,7 +429,7 @@ bool Model_Update::processFeature(FeaturePtr theFeature) aDepFeat = (*aDepIter)->document()->feature(aDepRes); } } - if (aDepFeat.get()) { + if (aDepFeat.get() && aDepFeat->data()->isValid()) { if (processFeature(aDepFeat)) aIsModified = true; if (aDepFeat->data()->execState() == ModelAPI_StateInvalidArgument) @@ -443,7 +443,7 @@ bool Model_Update::processFeature(FeaturePtr theFeature) int aNum = aPart->numberOfSubs(); for(int a = 0; a < aNum; a++) { FeaturePtr aSub = aPart->subFeature(a); - if (aSub.get()) { + if (aSub.get() && aSub->data()->isValid()) { if (processFeature(aSub)) aIsModified = true; if (aSub->data()->execState() == ModelAPI_StateInvalidArgument)