Salome HOME
Fix for #767: correct the internal history structure for nested features
[modules/shaper.git] / src / Model / Model_AttributeReference.cpp
index 8a44eec0e20051292bb7d57617a0f72e9c1e7119..beb04549cffe4a51c359d83158e386613ddb07e8 100644 (file)
@@ -28,7 +28,7 @@ void Model_AttributeReference::setValue(ObjectPtr theObject)
     REMOVE_BACK_REF(aValue);
 
     TDF_Label anObjLab;
-    if (theObject.get() && theObject->data().get() && theObject->data()->isValid()) {
+    if (theObject.get() && theObject->data()->isValid()) {
       std::shared_ptr<Model_Data> aData = std::dynamic_pointer_cast<Model_Data>(
         theObject->data());
       anObjLab = aData->label().Father(); // object label
@@ -36,8 +36,6 @@ void Model_AttributeReference::setValue(ObjectPtr theObject)
     // same document, use reference attribute
     if (anObjLab.IsNull() || owner()->document() == theObject->document()) {
 
-      std::shared_ptr<Model_Document> aDoc =
-        std::dynamic_pointer_cast<Model_Document>(owner()->document());
       if (anObjLab.IsNull()) {
         myRef->Set(myRef->Label());
       } else {
@@ -96,7 +94,8 @@ ObjectPtr Model_AttributeReference::value()
 
 bool Model_AttributeReference::isInitialized()
 {
-  if (myRef->Label() == myRef->Get()) { // empty reference is not initialized
+  if (myRef->Label() == myRef->Get() && !myRef->Label().IsAttribute(TDataStd_Comment::GetID())) {
+    // empty reference is not initialized
     return false;
   }
   return ModelAPI_AttributeReference::isInitialized();