Salome HOME
Fix for sketcher plane selection in complex operations like ExtrusionCut
[modules/shaper.git] / src / Model / Model_Objects.cpp
index a15df8a33ca902e37470007704864c341c2c3182..b4e516cd64e75305d523ad0c750635d14376c1f0 100644 (file)
@@ -1968,6 +1968,11 @@ FeaturePtr Model_Objects::lastFeature()
 {
   Handle(TDataStd_ReferenceArray) aRefs;
   if (featuresLabel().FindAttribute(TDataStd_ReferenceArray::GetID(), aRefs)) {
+    FeaturePtr aLast = feature(aRefs->Value(aRefs->Upper()));
+    if (!aLast.get() && aRefs->Length() != 0) { // erase the invalid feature from the array
+      RemoveFromRefArray(featuresLabel(), aRefs->Value(aRefs->Upper()));
+      return lastFeature(); // try once again, after the last was removed
+    }
     return feature(aRefs->Value(aRefs->Upper()));
   }
   return FeaturePtr(); // no features at all