]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Update executive version
authorabd <abd@opencascade.com>
Fri, 31 Mar 2006 10:32:01 +0000 (10:32 +0000)
committerabd <abd@opencascade.com>
Fri, 31 Mar 2006 10:32:01 +0000 (10:32 +0000)
Temprorary fix python of calls

src/PyInterp/PyInterp.h
src/PythonConsole/PythonConsole.h
src/PythonConsole/PythonConsole_PyInterp.cxx

index fe7ec69179834dbe24324c5947701bc1a3b4a78c..06a4cb6e5e3bd60bebab0bdd3d794cf97f80c898 100755 (executable)
 #endif  // WNT
 
 // ========================================================
-// little trick - we do not have debug python libraries
+// little trick - if we do not have debug python libraries
 #ifdef _DEBUG
-
-#undef _DEBUG
-#include <Python.h>
-#define _DEBUG
-
-#else  // _DEBUG
+ #ifndef HAVE_DEBUG_PYTHON
+  #undef _DEBUG
+ #endif
+#endif
 
 #include <Python.h>
 
-#endif // _DEBUG
+#ifdef _DEBUG
+ #ifndef HAVE_DEBUG_PYTHON
+  #define _DEBUG
+ #endif
+#endif
 
 // ========================================================
 // avoid warning messages
index 1e6f954ca23df2f630564f9dee1a2251e97f6b54..3680d4c21ffee66f47df2e7e6adaa62afc66d98e 100755 (executable)
 #endif  // WNT
 
 // ========================================================
-// little trick - we do not have debug python libraries
+// little trick - if we do not have debug python libraries
 #ifdef _DEBUG
-
+#ifndef HAVE_DEBUG_PYTHON
 #undef _DEBUG
-#include <Python.h>
-#define _DEBUG
-
-#else  // _DEBUG
+#endif
+#endif
 
 #include <Python.h>
 
-#endif // _DEBUG
+#ifdef _DEBUG
+#ifndef HAVE_DEBUG_PYTHON
+#define _DEBUG
+#endif
+#endif
 
 // ========================================================
 // avoid warning messages
index 5b7d3e579b602e39940c7cd77eb2d4c0efbd6cff..22a84bfc4c348ded9642b92bfc265949d6eca0df 100755 (executable)
@@ -77,9 +77,16 @@ bool PythonConsole_PyInterp::initState()
    * It is the caller responsability to release the lock if needed
    */
   PyEval_AcquireLock();
-  _tstate = Py_NewInterpreter(); // create an interpreter and save current state
-  PySys_SetArgv(PyInterp_base::_argc,PyInterp_base::_argv); // initialize sys.argv
-//  if(MYDEBUG) MESSAGE("PythonConsole_PyInterp::initState - this = "<<this<<"; _tstate = "<<_tstate);
+  _tstate = PyGILState_GetThisThreadState();
+  // if no thread state defined
+  if ( _tstate )
+    PyThreadState_Swap(_tstate);
+  else
+  {
+    _tstate = Py_NewInterpreter(); // create an interpreter and save current state
+    PySys_SetArgv(PyInterp_base::_argc,PyInterp_base::_argv); // initialize sys.argv
+    //if(MYDEBUG) MESSAGE("PythonConsole_PyInterp::initState - this = "<<this<<"; _tstate = "<<_tstate);
+  }
 
   /*
    * If builtinmodule has been initialized all the sub interpreters
@@ -91,7 +98,7 @@ bool PythonConsole_PyInterp::initState()
 //    SCRUTE(builtinmodule->ob_refcnt); // builtinmodule reference counter
     _tstate->interp->builtins = PyModule_GetDict(builtinmodule);
     Py_INCREF(_tstate->interp->builtins);
-  }
+  }    
   PyEval_ReleaseThread(_tstate);
   return true;
 }