Salome HOME
MPV: Merge V1_2d
[modules/superv.git] / src / Supervision / GNode_Impl.hxx
index ca6cff4da0d9909cb5fb1fcc4ac8f6eff9ea2324..72eed81da83e0ec3f3140671c857ce5dbd456e90 100644 (file)
@@ -68,21 +68,22 @@ class GNode_Impl : public INode_Impl ,
     virtual bool SetCoupled( const char * anInLineNode ) {
             GraphBase::InLineNode * CoupledINode = (GraphBase::InLineNode * ) DataFlowEditor()->GetGraphNode( anInLineNode ) ;
 //            cout << Name() << ".SetCoupled " << anInLineNode << endl ;
-            if ( CoupledINode && ( IsGOTO() &&
+//            if ( CoupledINode && ( IsGOTO() &&
+            if ( ( IsGOTO() &&
                    ( CoupledINode->IsInLineNode() || CoupledINode->IsLoopNode() ||
                      CoupledINode->IsSwitchNode() ) ) ||
                  ( !IsGOTO() && ( IsLoop() || IsSwitch() ||
                                   IsEndLoop() || IsEndSwitch() ) ) ) {
               DataFlowNode()->CoupledNode( CoupledINode ) ;
-              if ( IsSwitch() ) {
+              if ( CoupledINode && IsSwitch() ) {
                 DataFlowEditor()->AddLink( Name() , "Default" ,
                                            CoupledINode->Name() , "Default" ) ;
              }
-              else if ( IsLoop() || IsEndLoop() ) {
+              else if ( CoupledINode && ( IsLoop() || IsEndLoop() ) ) {
                 DataFlowEditor()->AddLink( Name() , "DoLoop" ,
                                            CoupledINode->Name() , "DoLoop" ) ;
              }
-              else if ( IsGOTO() ) {
+              else if ( CoupledINode && IsGOTO() ) {
                 DataFlowEditor()->AddLink( Name() , "OutGate" ,
                                            CoupledINode->Name() , "InGate" ) ;
              }