aparently mingw was still having problems, fixed this properly by using PyType_Ready, this needed some changes to the PyType to work.
This commit is contained in:
@@ -128,7 +128,7 @@ void types_InitAll( void )
|
|||||||
euler_Type.ob_type = &PyType_Type;
|
euler_Type.ob_type = &PyType_Type;
|
||||||
matrix_Type.ob_type = &PyType_Type;
|
matrix_Type.ob_type = &PyType_Type;
|
||||||
quaternion_Type.ob_type = &PyType_Type;
|
quaternion_Type.ob_type = &PyType_Type;
|
||||||
rgbTuple_Type.ob_type = &PyType_Type;
|
PyType_Ready( &rgbTuple_Type );
|
||||||
vector_Type.ob_type = &PyType_Type;
|
vector_Type.ob_type = &PyType_Type;
|
||||||
property_Type.ob_type = &PyType_Type;
|
property_Type.ob_type = &PyType_Type;
|
||||||
point_Type.ob_type = &PyType_Type;
|
point_Type.ob_type = &PyType_Type;
|
||||||
|
|||||||
@@ -86,10 +86,10 @@ PyTypeObject rgbTuple_Type = {
|
|||||||
PyObject_HEAD_INIT( NULL )
|
PyObject_HEAD_INIT( NULL )
|
||||||
0, /* ob_size */
|
0, /* ob_size */
|
||||||
"rgbTuple", /* tp_name */
|
"rgbTuple", /* tp_name */
|
||||||
0, /* tp_basicsize */
|
sizeof( BPy_rgbTuple ), /* tp_basicsize */
|
||||||
0, /* tp_itemsize */
|
0, /* tp_itemsize */
|
||||||
/* methods */
|
/* methods */
|
||||||
( destructor )PyObject_Del, /* tp_dealloc */
|
0, /* tp_dealloc */
|
||||||
0, /* tp_print */
|
0, /* tp_print */
|
||||||
( getattrfunc ) rgbTuple_getAttr, /* tp_getattr */
|
( getattrfunc ) rgbTuple_getAttr, /* tp_getattr */
|
||||||
( setattrfunc ) rgbTuple_setAttr, /* tp_setattr */
|
( setattrfunc ) rgbTuple_setAttr, /* tp_setattr */
|
||||||
@@ -99,11 +99,31 @@ PyTypeObject rgbTuple_Type = {
|
|||||||
&rgbTupleAsSequence, /* tp_as_sequence */
|
&rgbTupleAsSequence, /* tp_as_sequence */
|
||||||
&rgbTupleAsMapping, /* tp_as_mapping */
|
&rgbTupleAsMapping, /* tp_as_mapping */
|
||||||
0, /* tp_as_hash */
|
0, /* tp_as_hash */
|
||||||
0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, Py_TPFLAGS_DEFAULT,
|
||||||
0, /* tp_doc */
|
0, /* tp_doc */
|
||||||
0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0,
|
||||||
0, /* tp_methods */
|
0, /* tp_methods */
|
||||||
0, /* tp_members */
|
0, /* tp_members */
|
||||||
|
0, /* struct PyGetSetDef *tp_getset; */
|
||||||
|
0, /* struct _typeobject *tp_base; */
|
||||||
|
0, /* PyObject *tp_dict; */
|
||||||
|
0, /* descrgetfunc tp_descr_get; */
|
||||||
|
0, /* descrsetfunc tp_descr_set; */
|
||||||
|
0, /* long tp_dictoffset; */
|
||||||
|
0, /* initproc tp_init; */
|
||||||
|
0, /* allocfunc tp_alloc; */
|
||||||
|
0, /* newfunc tp_new; */
|
||||||
|
/* Low-level free-memory routine */
|
||||||
|
0, /* freefunc tp_free; */
|
||||||
|
/* For PyObject_IS_GC */
|
||||||
|
0, /* inquiry tp_is_gc; */
|
||||||
|
0, /* PyObject *tp_bases; */
|
||||||
|
/* method resolution order */
|
||||||
|
0, /* PyObject *tp_mro; */
|
||||||
|
0, /* PyObject *tp_cache; */
|
||||||
|
0, /* PyObject *tp_subclasses; */
|
||||||
|
0, /* PyObject *tp_weaklist; */
|
||||||
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
@@ -111,13 +131,7 @@ PyTypeObject rgbTuple_Type = {
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
PyObject *rgbTuple_New( float *rgb[3] )
|
PyObject *rgbTuple_New( float *rgb[3] )
|
||||||
{
|
{
|
||||||
BPy_rgbTuple *rgbTuple;
|
BPy_rgbTuple *rgbTuple = PyObject_NEW( BPy_rgbTuple, &rgbTuple_Type );
|
||||||
|
|
||||||
rgbTuple_Type.ob_type = &PyType_Type;
|
|
||||||
rgbTuple_Type.tp_dealloc = (destructor)&PyObject_Del;
|
|
||||||
rgbTuple =
|
|
||||||
( BPy_rgbTuple * ) PyObject_NEW( BPy_rgbTuple,
|
|
||||||
&rgbTuple_Type );
|
|
||||||
|
|
||||||
if( rgbTuple == NULL )
|
if( rgbTuple == NULL )
|
||||||
return EXPP_ReturnPyObjError( PyExc_MemoryError,
|
return EXPP_ReturnPyObjError( PyExc_MemoryError,
|
||||||
|
|||||||
Reference in New Issue
Block a user