}
// Check if shape is valid
- if(aFeature.shape()->isNull()) {
+ if(!aFeature.shape().get() || aFeature.shape()->isNull()) {
static const std::string aShapeError = "Resulting shape is Null";
setError(aShapeError);
break;
bool aDisabledFlag = !aPassed;
if (aMain.get() && aMain->isSub(anIter)) // sub-elements of not-disabled feature are not disabled
aDisabledFlag = false;
- if (anIter->getKind() == "Parameter") // parameters are always out of the history
- aDisabledFlag = false;
+ if (anIter->getKind() == "Parameter") {// parameters are always out of the history of features, but not parameters
+ if (theCurrent.get() && theCurrent->getKind() != "Parameter")
+ aDisabledFlag = false;
+ }
if (anIter->setDisabled(aDisabledFlag)) {
// state of feature is changed => so feature become updated
static Events_ID anUpdateEvent = aLoop->eventByName(EVENT_OBJECT_UPDATED);