From: mkr Date: Thu, 10 Aug 2006 11:26:41 +0000 (+0000) Subject: Fix for bug PAL12455 : REGRESSION: can't transfer a string into a macro-node. X-Git-Tag: For_OCT_611~4 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=a7f936a13f5677146ee08cc97768ee662d1177d9;p=modules%2Fsuperv.git Fix for bug PAL12455 : REGRESSION: can't transfer a string into a macro-node. --- diff --git a/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx b/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx index bf64f35..8aa1e9a 100644 --- a/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx +++ b/src/GraphExecutor/DataFlowExecutor_InNodeThreads.cxx @@ -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 ) ;