[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