From fcc5b5c48c127b0b4567434e8ce5c30dc91ae1e3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 25 Mar 2011 00:34:28 +0000 Subject: fix for blenderplayer using un-initialized mathutils types. --- source/gameengine/Ketsji/KX_PythonInit.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'source') diff --git a/source/gameengine/Ketsji/KX_PythonInit.cpp b/source/gameengine/Ketsji/KX_PythonInit.cpp index d274b3e4eac..0be0fa3c7dc 100644 --- a/source/gameengine/Ketsji/KX_PythonInit.cpp +++ b/source/gameengine/Ketsji/KX_PythonInit.cpp @@ -1918,7 +1918,7 @@ static void restorePySysObjects(void) } // Copied from bpy_interface.c -static struct _inittab bpy_internal_modules[]= { +static struct _inittab bge_internal_modules[]= { {"mathutils", BPyInit_mathutils}, {"bgl", BPyInit_bgl}, {"blf", BPyInit_blf}, @@ -1945,6 +1945,10 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur #endif Py_NoSiteFlag=1; Py_FrozenFlag=1; + + /* must run before python initializes */ + PyImport_ExtendInittab(bge_internal_modules); + Py_Initialize(); if(argv && first_time) { /* browser plugins dont currently set this */ @@ -1961,13 +1965,18 @@ PyObject* initGamePlayerPythonScripting(const STR_String& progname, TPythonSecur } setSandbox(level); + + /* mathutils types are used by the BGE even if we dont import them */ + { + PyObject *mod= PyImport_ImportModuleLevel((char *)"mathutils", NULL, NULL, NULL, 0); + Py_DECREF(mod); + } + initPyTypes(); bpy_import_main_set(maggie); initPySysObjects(maggie); - - PyImport_ExtendInittab(bpy_internal_modules); first_time = false; -- cgit v1.2.3