[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32764] trunk/blender: use PyImport_ExtendInittab for py module initialization rather then adding to sys .modules directly, no functional change.
Dalai Felinto
dfelinto at gmail.com
Sat Oct 30 03:59:01 CEST 2010
Hi Campbell,
this commit produced this error in CMake+MSVC:
http://www.pasteall.org/16526
Confirmed in scons+gcc by Bassam.
Any clues?
Cheers,
Dalai
2010/10/30 Campbell Barton <ideasman42 at gmail.com>
> Revision: 32764
>
> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32764
> Author: campbellbarton
> Date: 2010-10-30 00:59:39 +0200 (Sat, 30 Oct 2010)
>
> Log Message:
> -----------
> use PyImport_ExtendInittab for py module initialization rather then adding
> to sys.modules directly, no functional change.
>
> Modified Paths:
> --------------
> trunk/blender/intern/audaspace/intern/AUD_C-API.cpp
> trunk/blender/source/blender/python/generic/bgl.c
> trunk/blender/source/blender/python/generic/bgl.h
> trunk/blender/source/blender/python/generic/blf_api.c
> trunk/blender/source/blender/python/generic/blf_api.h
> trunk/blender/source/blender/python/generic/mathutils.c
> trunk/blender/source/blender/python/generic/mathutils.h
> trunk/blender/source/blender/python/generic/mathutils_geometry.c
> trunk/blender/source/blender/python/generic/mathutils_geometry.h
> trunk/blender/source/blender/python/generic/noise.c
> trunk/blender/source/blender/python/intern/bpy.c
> trunk/blender/source/blender/python/intern/bpy_interface.c
> trunk/blender/source/blender/python/intern/bpy_operator.c
>
> Modified: trunk/blender/intern/audaspace/intern/AUD_C-API.cpp
> ===================================================================
> --- trunk/blender/intern/audaspace/intern/AUD_C-API.cpp 2010-10-29 19:40:45
> UTC (rev 32763)
> +++ trunk/blender/intern/audaspace/intern/AUD_C-API.cpp 2010-10-29 22:59:39
> UTC (rev 32764)
> @@ -197,7 +197,7 @@
> {
> PyObject* module = PyInit_aud();
> PyModule_AddObject(module, "device", (PyObject
> *)PyCFunction_New(meth_getcdevice, NULL));
> - PyDict_SetItemString(PySys_GetObject("modules"), "aud", module);
> + PyDict_SetItemString(PyImport_GetModuleDict(), "aud", module);
> if(AUD_device)
> {
> g_device = (Device*)Device_empty();
>
> Modified: trunk/blender/source/blender/python/generic/bgl.c
> ===================================================================
> --- trunk/blender/source/blender/python/generic/bgl.c 2010-10-29 19:40:45
> UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/bgl.c 2010-10-29 22:59:39
> UTC (rev 32764)
> @@ -1115,12 +1115,11 @@
> };
>
>
> -PyObject *BGL_Init(void)
> +PyObject *BPyInit_bgl(void)
> {
> - PyObject *mod, *dict, *item;
> - mod = PyModule_Create(&BGL_module_def);
> - PyDict_SetItemString(PyImport_GetModuleDict(),
> BGL_module_def.m_name, mod);
> - dict= PyModule_GetDict(mod);
> + PyObject *submodule, *dict, *item;
> + submodule= PyModule_Create(&BGL_module_def);
> + dict= PyModule_GetDict(submodule);
>
> if( PyType_Ready( &BGL_bufferType) < 0)
> return NULL; /* should never happen */
> @@ -1612,6 +1611,6 @@
> EXPP_ADDCONST(GL_TEXTURE_BINDING_1D);
> EXPP_ADDCONST(GL_TEXTURE_BINDING_2D);
>
> - return mod;
> + return submodule;
> }
>
>
> Modified: trunk/blender/source/blender/python/generic/bgl.h
> ===================================================================
> --- trunk/blender/source/blender/python/generic/bgl.h 2010-10-29 19:40:45
> UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/bgl.h 2010-10-29 22:59:39
> UTC (rev 32764)
> @@ -38,7 +38,7 @@
>
> #include <Python.h>
>
> -PyObject *BGL_Init(void);
> +PyObject *BPyInit_bgl(void);
>
> /*@ Create a buffer object */
> /*@ dimensions is an array of ndimensions integers representing the size
> of each dimension */
>
> Modified: trunk/blender/source/blender/python/generic/blf_api.c
> ===================================================================
> --- trunk/blender/source/blender/python/generic/blf_api.c 2010-10-29
> 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/blf_api.c 2010-10-29
> 22:59:39 UTC (rev 32764)
> @@ -390,17 +390,16 @@
> 0, /* m_free */
> };
>
> -PyObject *BLF_Init(void)
> +PyObject *BPyInit_blf(void)
> {
> PyObject *submodule;
>
> submodule = PyModule_Create(&BLF_module_def);
> - PyDict_SetItemString(PyImport_GetModuleDict(),
> BLF_module_def.m_name, submodule);
>
> PyModule_AddIntConstant(submodule, "ROTATION", BLF_ROTATION);
> PyModule_AddIntConstant(submodule, "CLIPPING", BLF_CLIPPING);
> PyModule_AddIntConstant(submodule, "SHADOW", BLF_SHADOW);
> PyModule_AddIntConstant(submodule, "KERNING_DEFAULT",
> BLF_KERNING_DEFAULT);
>
> - return (submodule);
> + return submodule;
> }
>
> Modified: trunk/blender/source/blender/python/generic/blf_api.h
> ===================================================================
> --- trunk/blender/source/blender/python/generic/blf_api.h 2010-10-29
> 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/blf_api.h 2010-10-29
> 22:59:39 UTC (rev 32764)
> @@ -22,5 +22,4 @@
> * ***** END GPL LICENSE BLOCK *****
> */
>
> -
> -PyObject *BLF_Init(void);
> +PyObject *BPyInit_blf(void);
>
> Modified: trunk/blender/source/blender/python/generic/mathutils.c
> ===================================================================
> --- trunk/blender/source/blender/python/generic/mathutils.c 2010-10-29
> 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/mathutils.c 2010-10-29
> 22:59:39 UTC (rev 32764)
> @@ -245,12 +245,10 @@
> 0, /* m_free */
> };
>
> -PyObject *Mathutils_Init(void)
> +PyMODINIT_FUNC BPyInit_mathutils(void)
> {
> PyObject *submodule;
> -
> -
> -
> +
> if( PyType_Ready( &vector_Type ) < 0 )
> return NULL;
> if( PyType_Ready( &matrix_Type ) < 0 )
> @@ -263,7 +261,6 @@
> return NULL;
>
> submodule = PyModule_Create(&M_Mathutils_module_def);
> - PyDict_SetItemString(PyImport_GetModuleDict(),
> M_Mathutils_module_def.m_name, submodule);
>
> /* each type has its own new() function */
> PyModule_AddObject( submodule, "Vector", (PyObject
> *)&vector_Type );
> @@ -273,9 +270,9 @@
> PyModule_AddObject( submodule, "Color", (PyObject
> *)&color_Type );
>
> /* submodule */
> - PyModule_AddObject( submodule, "geometry",
> Geometry_Init());
> + PyModule_AddObject( submodule, "geometry",
> BPyInit_mathutils_geometry());
>
> mathutils_matrix_vector_cb_index=
> Mathutils_RegisterCallback(&mathutils_matrix_vector_cb);
>
> - return (submodule);
> + return submodule;
> }
>
> Modified: trunk/blender/source/blender/python/generic/mathutils.h
> ===================================================================
> --- trunk/blender/source/blender/python/generic/mathutils.h 2010-10-29
> 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/mathutils.h 2010-10-29
> 22:59:39 UTC (rev 32764)
> @@ -61,8 +61,7 @@
> PyObject *BaseMathObject_getWrapped( BaseMathObject *self, void * );
> void BaseMathObject_dealloc(BaseMathObject * self);
>
> -PyObject *Mathutils_Init(void);
> -PyObject *Noise_Init(void); /* lazy, saves having own header */
> +PyMODINIT_FUNC BPyInit_mathutils(void);
>
> int EXPP_FloatsAreEqual(float A, float B, int floatSteps);
> int EXPP_VectorsAreEqual(float *vecA, float *vecB, int size, int
> floatSteps);
>
> Modified: trunk/blender/source/blender/python/generic/mathutils_geometry.c
> ===================================================================
> --- trunk/blender/source/blender/python/generic/mathutils_geometry.c
> 2010-10-29 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/mathutils_geometry.c
> 2010-10-29 22:59:39 UTC (rev 32764)
> @@ -830,12 +830,8 @@
> };
>
> /*----------------------------MODULE INIT-------------------------*/
> -PyObject *Geometry_Init(void)
> +PyMODINIT_FUNC BPyInit_mathutils_geometry(void)
> {
> - PyObject *submodule;
> -
> - submodule = PyModule_Create(&M_Geometry_module_def);
> - PyDict_SetItemString(PyImport_GetModuleDict(),
> M_Geometry_module_def.m_name, submodule);
> -
> - return (submodule);
> + PyObject *submodule= PyModule_Create(&M_Geometry_module_def);
> + return submodule;
> }
>
> Modified: trunk/blender/source/blender/python/generic/mathutils_geometry.h
> ===================================================================
> --- trunk/blender/source/blender/python/generic/mathutils_geometry.h
> 2010-10-29 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/mathutils_geometry.h
> 2010-10-29 22:59:39 UTC (rev 32764)
> @@ -34,6 +34,6 @@
> #include <Python.h>
> #include "mathutils.h"
>
> -PyObject *Geometry_Init(void);
> +PyMODINIT_FUNC BPyInit_mathutils_geometry(void);
>
> #endif /* EXPP_Geometry_H */
>
> Modified: trunk/blender/source/blender/python/generic/noise.c
> ===================================================================
> --- trunk/blender/source/blender/python/generic/noise.c 2010-10-29 19:40:45
> UTC (rev 32763)
> +++ trunk/blender/source/blender/python/generic/noise.c 2010-10-29 22:59:39
> UTC (rev 32764)
> @@ -122,8 +122,6 @@
> static int initf = 0;
> static unsigned long *next;
>
> -PyObject *Noise_Init(void);
> -
> /* initializes state[N] with a seed */
> static void init_genrand(unsigned long s)
> {
> @@ -657,10 +655,9 @@
> 0, /* m_free */
> };
>
> -PyObject *Noise_Init(void)
> +PyObject *BPyInit_noise(void)
> {
> PyObject *submodule = PyModule_Create(&noise_module_def);
> - PyDict_SetItemString(PyImport_GetModuleDict(),
> noise_module_def.m_name, submodule);
>
> /* use current time as seed for random number generator by default
> */
> setRndSeed(0);
>
> Modified: trunk/blender/source/blender/python/intern/bpy.c
> ===================================================================
> --- trunk/blender/source/blender/python/intern/bpy.c 2010-10-29 19:40:45
> UTC (rev 32763)
> +++ trunk/blender/source/blender/python/intern/bpy.c 2010-10-29 22:59:39
> UTC (rev 32764)
> @@ -195,12 +195,7 @@
> printf("bpy: couldnt find 'scripts/modules', blender
> probably wont start.\n");
> }
> /* stand alone utility modules not related to blender directly */
> - Mathutils_Init();
> - Noise_Init();
> - BGL_Init();
> - BLF_Init();
> - IDProp_Init_Types();
> - AUD_initPython();
> + IDProp_Init_Types(); /* not actually a submodule, just types */
>
> mod = PyModule_New("_bpy");
>
>
> Modified: trunk/blender/source/blender/python/intern/bpy_interface.c
> ===================================================================
> --- trunk/blender/source/blender/python/intern/bpy_interface.c 2010-10-29
> 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/intern/bpy_interface.c 2010-10-29
> 22:59:39 UTC (rev 32764)
> @@ -196,6 +196,22 @@
> BPy_SetContext(C);
> }
>
> +/* init-tab */
> +extern PyObject *BPyInit_noise(void);
> +extern PyObject *BPyInit_mathutils(void);
> +extern PyObject *BPyInit_bgl(void);
> +extern PyObject *BPyInit_blf(void);
> +extern PyObject *AUD_initPython(void);
> +
> +static struct _inittab bpy_internal_modules[]= {
> + {"noise", BPyInit_noise},
> + {"mathutils", BPyInit_mathutils},
> + {"bgl", BPyInit_bgl},
> + {"blf", BPyInit_blf},
> + {"aud", AUD_initPython},
> + {NULL, NULL}
> +};
> +
> /* call BPY_set_context first */
> void BPY_start_python( int argc, char **argv )
> {
> @@ -206,6 +222,9 @@
> utf8towchar(bprogname_wchar, bprogname);
> Py_SetProgramName(bprogname_wchar);
>
> + /* builtin modules */
> + PyImport_ExtendInittab(bpy_internal_modules);
> +
> BPY_start_python_path(); /* allow to use our own included python */
>
> Py_Initialize( );
>
> Modified: trunk/blender/source/blender/python/intern/bpy_operator.c
> ===================================================================
> --- trunk/blender/source/blender/python/intern/bpy_operator.c 2010-10-29
> 19:40:45 UTC (rev 32763)
> +++ trunk/blender/source/blender/python/intern/bpy_operator.c 2010-10-29
> 22:59:39 UTC (rev 32764)
> @@ -313,14 +313,8 @@
> PyObject *BPY_operator_module(void)
> {
> PyObject *submodule;
> -
> +
> submodule= PyModule_Create(&bpy_ops_module);
> - PyDict_SetItemString(PyImport_GetModuleDict(),
> bpy_ops_module.m_name, submodule);
>
> - /* INCREF since its its assumed that all these functions return the
> - * module with a new ref like PyDict_New, since they are passed to
> - * PyModule_AddObject which steals a ref */
> - Py_INCREF(submodule);
> -
> return submodule;
> }
>
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
More information about the Bf-committers
mailing list