From: vsv Date: Mon, 29 Oct 2018 09:14:02 +0000 (+0300) Subject: Issue #2690: Check folders attributes on delete of the folder X-Git-Tag: End2018~247 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=52efadfed323becb5367f41c4d49c0d6317d94c2;p=modules%2Fshaper.git Issue #2690: Check folders attributes on delete of the folder --- diff --git a/src/PartSet/PartSet_Tools.cpp b/src/PartSet/PartSet_Tools.cpp index 020c47a27..0d91654e5 100755 --- a/src/PartSet/PartSet_Tools.cpp +++ b/src/PartSet/PartSet_Tools.cpp @@ -757,6 +757,9 @@ ResultPtr PartSet_Tools::createFixedByExternalCenter( void PartSet_Tools::getFirstAndLastIndexInFolder(const ObjectPtr& theFolder, int& theFirst, int& theLast) { + theFirst = -1; + theLast = -1; + DocumentPtr aDoc = theFolder->document(); FolderPtr aFolder = std::dynamic_pointer_cast(theFolder); if (!aFolder.get()) @@ -764,18 +767,19 @@ void PartSet_Tools::getFirstAndLastIndexInFolder(const ObjectPtr& theFolder, AttributeReferencePtr aFirstFeatAttr = aFolder->data()->reference(ModelAPI_Folder::FIRST_FEATURE_ID()); + if (!aFirstFeatAttr.get()) + return; FeaturePtr aFirstFeatureInFolder = ModelAPI_Feature::feature(aFirstFeatAttr->value()); - if (!aFirstFeatureInFolder.get()) { - theFirst = -1; + if (!aFirstFeatureInFolder.get()) return; - } + AttributeReferencePtr aLastFeatAttr = aFolder->data()->reference(ModelAPI_Folder::LAST_FEATURE_ID()); + if (!aLastFeatAttr.get()) + return; FeaturePtr aLastFeatureInFolder = ModelAPI_Feature::feature(aLastFeatAttr->value()); - if (!aLastFeatureInFolder.get()) { - theLast = -1; + if (!aLastFeatureInFolder.get()) return; - } theFirst = aDoc->index(aFirstFeatureInFolder); theLast = aDoc->index(aLastFeatureInFolder);