SUPERV::GNode_ptr aCoupled = SUPERV::GNode::_narrow( Coupled() ) ;
if ( Delete() ) {
_poa->deactivate_object(*_id) ;
- CORBA::release(_poa) ;
+// CORBA::release(_poa) ;
delete(_id) ;
- _thisObj->_remove_ref();
+// _thisObj->_remove_ref();
+ }
+ else {
+ MESSAGE("SNode_Impl::destroy ERROR ") ;
}
if ( !CORBA::is_nil( aCoupled ) ) {
- aCoupled->SetCoupled( "" ) ;
+// aCoupled->SetCoupled( "" ) ; : Used in GraphBase::Graph::RemoveNode( EndSwitchNode ) :
aCoupled->destroy() ;
}
+// Valid() only after deletion of the corresponding EndSwitchNode :
+ DataFlowEditor()->UnValid() ;
}
-// endService( "SNode_Impl::Destroy" );
+ endService( "SNode_Impl::Destroy" );
}
bool SNode_Impl::Delete() {
-// beginService( "SNode_Impl::Delete" );
+ beginService( "SNode_Impl::Delete" );
bool RetVal = false ;
if ( DataFlowEditor()->IsEditing() ) {
DeletePorts() ;
RetVal = DataFlowEditor()->RemoveNode( Name() ) ;
- if ( RetVal )
- RetVal = DataFlowEditor()->IsValid() ;
+// Valid() only after deletion of the corresponding EndLoopNode :
+// if ( RetVal ) {
+// RetVal = DataFlowEditor()->IsValid() ;
+// }
}
-// endService( "SNode_Impl::Delete" );
+ endService( "SNode_Impl::Delete" );
return RetVal ;
}