]> SALOME platform Git repositories - modules/yacs.git/commitdiff
Salome HOME
[bos #40598] solution to some test failing in ubuntu22.
authorcesarconopoima <cesar.conopoima@opencascade.com>
Tue, 30 Jan 2024 14:34:21 +0000 (14:34 +0000)
committerjfa <jfa@opencascade.com>
Thu, 18 Jul 2024 18:05:32 +0000 (19:05 +0100)
Add PY_SSIZE_T_CLEAN definition to header files.

Small modif to fix StdAloneYacsLoaderTest1.py

src/runtime/PyStdout.cxx
src/runtime/PyStdout.hxx
src/runtime/TypeConversions.cxx
src/runtime/TypeConversions.hxx
src/salomegui/Yacsgui.cxx
src/salomegui/Yacsgui.hxx
src/yacsloader_swig/Test/StdAloneYacsLoaderTest1.py

index 29412812323b6a0ba87c5147c5f015496e3f607d..480a61ca3660ee5f458956721f59d6b30aff08b6 100644 (file)
@@ -52,7 +52,7 @@ static PyObject *
 PyStdOut_write(PyStdOut *self, PyObject *args)
 {
   char *c;
-  int l;
+  Py_ssize_t l;
   if (!PyArg_ParseTuple(args, "s#:write",&c, &l))
     return NULL;
 
index 7438f3f8dee9ff2420a8bb7e46ae0c8b2dc956ae..8b016b3dfdde5f36ad835d56ba9729efd0363fc6 100644 (file)
@@ -22,6 +22,8 @@
 
 #include "YACSRuntimeSALOMEExport.hxx"
 
+#define  PY_SSIZE_T_CLEAN
+
 #include <Python.h>
 #include <iostream>
 
index 972c540f6830a0419c6292ba67a0b84120ca6026..d3d80a4672e9645351defc198306b9160bf6d8bd 100644 (file)
@@ -998,7 +998,8 @@ namespace YACS
               //It's a python pickled object, unpickled it
               PyObject* mod=PyImport_ImportModule("pickle");
               GURU_YACSTRACE("convertFromYacsObjref : unpickling...");
-              PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y#",o.c_str(),o.length());
+              Py_ssize_t l = o.length();
+              PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y#",o.c_str(),l);
               GURU_YACSTRACE("convertFromYacsObjref : unpickling done...");
               DEBTRACE(PyObject_Repr(ob));
               Py_DECREF(mod);
@@ -1026,7 +1027,8 @@ namespace YACS
                   PyErr_Print();
                   throw YACS::ENGINE::ConversionException("Problem in convertToYacsObjref<PYTHONImpl: no simplejson module");
                 }
-              PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y",o.c_str());
+              Py_ssize_t l = o.length();  
+              PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y",o.c_str(),l);
               Py_DECREF(mod);
               if(ob==NULL)
                 {
@@ -1891,7 +1893,8 @@ namespace YACS
 
                   PyGILState_STATE gstate = PyGILState_Ensure(); 
                   PyObject* mod=PyImport_ImportModule("pickle");
-                  PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y#",s,buffer->length());
+                  Py_ssize_t l = buffer->length();
+                  PyObject *ob=PyObject_CallMethod(mod,(char *)"loads",(char *)"y#",s,l);
                   PyObject *pickled=PyObject_CallMethod(mod,(char *)"dumps",(char *)"Oi",ob,protocol);
                   DEBTRACE(PyObject_Repr(pickled));
                   std::string mystr=PyBytes_AsString(pickled);
index fac324b97c2a80843592e1caab8bff23ab72a6c6..3a6629d700e29265034c7a6cbf1546d15b104a74 100644 (file)
@@ -22,6 +22,8 @@
 
 #include "YACSRuntimeSALOMEExport.hxx"
 
+#define  PY_SSIZE_T_CLEAN
+
 #include <Python.h>
 #include <omniORB4/CORBA.h>
 #include <libxml/parser.h>
index cae542ba031e30f54b31d2db5d559f3c8da0232d..a0fe4c9ba51a5747a27e86739d508c4fa828bbca 100644 (file)
@@ -175,7 +175,8 @@ bool Yacsgui::activateModule( SUIT_Study* theStudy )
     PyErr_Print();
   else
     {
-      PyObject* result=PyObject_CallMethod( pluginsmanager, (char*)"initialize", (char*)"isss",1,"yacs","YACS",tr("YACS_PLUGINS").toStdString().c_str());
+      Py_ssize_t l = 12;  // size of YACS_PLUGINS string
+      PyObject* result=PyObject_CallMethod( pluginsmanager, (char*)"initialize", (char*)"isss",1,"yacs","YACS",tr("YACS_PLUGINS").toStdString().c_str(),l);
       if(result==NULL)
         PyErr_Print();
       Py_XDECREF(result);
index 4bbd0fb14fdc3cfa0478a357eaf19e1ee1f76990..db01f3c35b45d112b25dfde7f0afefbdb649470d 100644 (file)
@@ -20,6 +20,8 @@
 #ifndef _YACSGUI_HXX_
 #define _YACSGUI_HXX_
 
+#define  PY_SSIZE_T_CLEAN
+
 #include "SalomeWrap_Module.hxx"
 #include "Yacsgui_Resource.hxx"
 #include <SALOMEconfig.h>
index 16dbb9ef840565b9c227c7509e04ead451743e05..5ca5f4d82802f34c7727da44f8d66f6f1bb41983 100644 (file)
@@ -131,7 +131,8 @@ class StdAloneYacsLoaderTest1(unittest.TestCase):
     ex.RunW(p,0)
     self.assertEqual(p.getState(),pilot.DONE)
     #
-    self.assertEqual(p.getChildByName("node2").getOutputPort("o1").get(),['aaa','bcbcbc'])
+    data = p.getChildByName("node2").getOutputPort("o1").get()
+    self.assertEqual(data,['aaa','bcbcbc'])
     pass
 
   def test3(self):