[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20903] trunk/blender/source/gameengine/ Ketsji/KX_PythonInit.cpp: saving globalDict didnt work with python3.x
Campbell Barton
ideasman42 at gmail.com
Mon Jun 15 22:22:50 CEST 2009
Revision: 20903
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20903
Author: campbellbarton
Date: 2009-06-15 22:22:50 +0200 (Mon, 15 Jun 2009)
Log Message:
-----------
saving globalDict didnt work with python3.x
Modified Paths:
--------------
trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
Modified: trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp 2009-06-15 19:29:46 UTC (rev 20902)
+++ trunk/blender/source/gameengine/Ketsji/KX_PythonInit.cpp 2009-06-15 20:22:50 UTC (rev 20903)
@@ -1986,6 +1986,8 @@
PyObject* initBGL() {Py_INCREF(Py_None);return Py_None;}
#endif
+
+
void KX_SetActiveScene(class KX_Scene* scene)
{
gp_KetsjiScene = scene;
@@ -2017,11 +2019,17 @@
if (pyGlobalDictMarshal) {
// for testing only
// PyObject_Print(pyGlobalDictMarshal, stderr, 0);
-
+ char *marshal_cstring;
+
+#if PY_VERSION_HEX < 0x03000000
+ marshal_cstring = PyString_AsString(pyGlobalDictMarshal);
marshal_length= PyString_Size(pyGlobalDictMarshal);
+#else // py3 uses byte arrays
+ marshal_cstring = PyBytes_AsString(pyGlobalDictMarshal);
+ marshal_length= PyBytes_Size(pyGlobalDictMarshal);
+#endif
*marshal_buffer = new char[marshal_length + 1];
- memcpy(*marshal_buffer, PyString_AsString(pyGlobalDictMarshal), marshal_length);
-
+ memcpy(*marshal_buffer, marshal_cstring, marshal_length);
Py_DECREF(pyGlobalDictMarshal);
} else {
printf("Error, GameLogic.globalDict could not be marshal'd\n");
More information about the Bf-blender-cvs
mailing list