Fix the underlying problem from the last commit, which was worked
around incorrectly in r24435 before that. freeptr in BPy_StructRNA was uninitialized when creating bpy.context.
This commit is contained in:
@@ -217,7 +217,9 @@ static void bpy_init_modules( void )
|
||||
/* bpy context */
|
||||
{
|
||||
bpy_context_module= ( BPy_StructRNA * ) PyObject_NEW( BPy_StructRNA, &pyrna_struct_Type );
|
||||
|
||||
RNA_pointer_create(NULL, &RNA_Context, NULL, &bpy_context_module->ptr);
|
||||
bpy_context_module->freeptr= 0;
|
||||
|
||||
PyModule_AddObject(mod, "context", (PyObject *)bpy_context_module);
|
||||
}
|
||||
|
||||
@@ -370,13 +370,9 @@ static long pyrna_struct_hash( BPy_StructRNA *self )
|
||||
static void pyrna_struct_dealloc( BPy_StructRNA *self )
|
||||
{
|
||||
if (self->freeptr && self->ptr.data) {
|
||||
|
||||
if (self->ptr.type != &RNA_Context)
|
||||
{
|
||||
IDP_FreeProperty(self->ptr.data);
|
||||
MEM_freeN(self->ptr.data);
|
||||
self->ptr.data= NULL;
|
||||
}
|
||||
IDP_FreeProperty(self->ptr.data);
|
||||
MEM_freeN(self->ptr.data);
|
||||
self->ptr.data= NULL;
|
||||
}
|
||||
|
||||
/* Note, for subclassed PyObjects we cant just call PyObject_DEL() directly or it will crash */
|
||||
|
||||
Reference in New Issue
Block a user