From 28d317bd93c0cecba59d648d76209cc3c6200ace Mon Sep 17 00:00:00 2001 From: mpv Date: Tue, 17 May 2016 14:16:54 +0300 Subject: [PATCH] Fix for crash on abort of Boolean with one argument set. --- src/Model/Model_Update.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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) -- 2.39.2