From: maintenance team Date: Wed, 27 Sep 2006 12:46:51 +0000 (+0000) Subject: Correction for problem: Execution of the wrong dataflow has "DoneState" status instea... X-Git-Tag: V3_2_3pre1~2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=211aeeb9adc727df0cf793ce503b707ae453bf49;p=modules%2Fsuperv.git Correction for problem: Execution of the wrong dataflow has "DoneState" status instead of "ErrorState"(int type used instead of long for portability) --- diff --git a/src/GraphExecutor/DataFlowExecutor_PyDynInvoke.cxx b/src/GraphExecutor/DataFlowExecutor_PyDynInvoke.cxx index 8f13356..d885612 100644 --- a/src/GraphExecutor/DataFlowExecutor_PyDynInvoke.cxx +++ b/src/GraphExecutor/DataFlowExecutor_PyDynInvoke.cxx @@ -370,7 +370,14 @@ bool GraphExecutor::InNode::PyDynInvoke( PyObject * MyPyRunMethod , case CORBA::tk_long : { CORBA::Long l ; data >>= l ; - PyObject * ArgValue = Py_BuildValue( "l" , l ) ; +// epa - Porting to 64-bit Linux:CORBA::Long is incorrectly treated as unsigned +// integer by Py_BuildValue("l", val) in Python 2.4.1. Using Py_BuildValue("i",val) +// seemsto help + PyObject * ArgValue = NULL; + if ( SIZEOF_LONG == 4 ) + ArgValue = Py_BuildValue( "l" , l ) ; + else + ArgValue = Py_BuildValue( "i" , l ) ; #if PyDynInvokeTrace cdebug << "ArgIn" << i << " : " << sname << " " << method << " Value " << l << " ArgValue->ob_refcnt" << ArgValue->ob_refcnt << endl ;