]> SALOME platform Git repositories - modules/superv.git/commitdiff
Salome HOME
Fix for bug PAL12455 : REGRESSION: can't transfer a string into a macro-node.
authormkr <mkr@opencascade.com>
Thu, 10 Aug 2006 11:26:41 +0000 (11:26 +0000)
committermkr <mkr@opencascade.com>
Thu, 10 Aug 2006 11:26:41 +0000 (11:26 +0000)
src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx

index bf64f350e55edd979fbf895d97bf112593e9236b..8aa1e9ab5cb4992cad4a390df4c79dabf60521e2 100644 (file)
@@ -1045,6 +1045,18 @@ int GraphExecutor::InNode::DataWaiting_SomeDataReadyAction() {
 #endif
         cdebug << endl ;
 #endif
+        // mkr : PAL12455 -->
+        // MacroNode : give immediately the value to the corresponding graph
+        if ( IsMacroNode() ) {
+          GraphExecutor::DataFlow * aMacroGraph = GraphMacroNode()->CoupledNode()->GraphEditor()->Executor() ;
+          cdebug << "SomeDataReadyAction MacroNode " << aMacroGraph->Name() << " --> InputOfAny "
+                 << InReady << "/" << GetNodeInPortsSize() << " InPorts are Ready ( "
+                 << anInPort->PortName() << " ) ===> InputOfAny" << endl ;
+//        GraphMacroNode()->MacroObject()->InputOfAny( anInPort->PortName() , *anOutPort->Value() ) ;
+//JR 30.03.2005        aMacroGraph->InputOfAny( anInPort->PortName() , *anOutPort->Value() ) ;
+          aMacroGraph->InputOfAny( anInPort->PortName() , anOutPort->Value() ) ;
+        }
+        // mkr : PAL12455 <--
       }
       else if ( IsLoopNode() && anInPort->IsDataConnected() ) {
         anInPort->PortState( SUPERV::ReadyState ) ;
@@ -3198,9 +3210,10 @@ void GraphExecutor::InNode::InParametersSet( bool & Err ,
         theOutPort->SetValue( anAny ) ;
 //        delete anAny ;
       }
-      if ( !anInPort->IsDataStream() &&
+      if ( !anInPort->IsDataStream() 
+          && 
            !anInPort->IsDataConnected() ) {
-        anInPort->PortState( SUPERV::WaitingState ) ;
+          anInPort->PortState( SUPERV::WaitingState ) ;
       }
 //JR 18.02.2005 Debug Memory leak : delete does not destroy that string ...
 //      D.Name = CORBA::string_dup( anInPort->GetServicesParameter().Parametername ) ;