]> SALOME platform Git repositories - modules/yacs.git/blobdiff - src/runtime/SalomeComponent.cxx
Salome HOME
Fix memory corruption and refactor some points.
[modules/yacs.git] / src / runtime / SalomeComponent.cxx
index 2a53981c55951668ab5b4f6f75a77a0f4c4de3a9..b991f38469f4a97bc81ad4847aae1c6782aa809b 100644 (file)
@@ -133,21 +133,16 @@ std::string SalomeComponent::getFileRepr() const
   return stream.str();
 }
 
-void SalomeComponent::setContainer(Container *cont)
+bool SalomeComponent::setContainer(Container *cont)
 {
-  if (cont == _container) return;
-
-  if(cont)
-    cont->checkCapabilityToDealWith(this);
-
-  if(_container)
-    _container->decrRef();
-  _container=cont;
-  if(_container)
-  {
-    _container->incrRef();
-    ((SalomeContainer*)_container)->addComponentName(_compoName);
-  }
+  if(ComponentInstance::setContainer(cont))
+    {
+      if(_container)
+        _container->addComponentName(_compoName);
+      return true;
+    }
+  else
+    return false;
 }
 
 void SalomeComponent::shutdown(int level)