]> SALOME platform Git repositories - modules/superv.git/blobdiff - src/Supervision/LNode_Impl.cxx
Salome HOME
MPV: Merge V1_2d
[modules/superv.git] / src / Supervision / LNode_Impl.cxx
index 2bef195c94b068cb693c89a0d1061f3be80ce8ec..436a59eff60baca4b19047dd02a06322d1cb71b5 100644 (file)
@@ -79,25 +79,31 @@ LNode_Impl::~LNode_Impl() {
 void LNode_Impl::destroy() {
   beginService( "LNode_Impl::Destroy" );
   if ( DataFlowEditor()->IsEditing() ) {
+    SUPERV::GNode_ptr aCoupled = SUPERV::GNode::_narrow( Coupled() ) ;
     if ( Delete() ) {
       _poa->deactivate_object(*_id) ;
       CORBA::release(_poa) ;
       delete(_id) ;
       _thisObj->_remove_ref();
     }
+    if ( !CORBA::is_nil( aCoupled ) ) {
+      aCoupled->SetCoupled( "" ) ;
+      aCoupled->destroy() ;
+    }
   }
   endService( "LNode_Impl::Destroy" );
 }
 
 bool LNode_Impl::Delete() {
-//  beginService( "LNode_Impl::Delete" );
+  beginService( "LNode_Impl::Delete" );
   bool RetVal = false ;
   if ( DataFlowEditor()->IsEditing() ) {
     RetVal = DataFlowEditor()->RemoveNode( Name() ) ;
-    if ( RetVal )
+    if ( RetVal ) {
       RetVal = DataFlowEditor()->IsValid() ;
+    }
   }
-//  endService( "LNode_Impl::Delete" );
+  endService( "LNode_Impl::Delete" );
   return RetVal ;
 }