Second attempt to fix a null pointer reference in deallocators of
built-in types (the first was in revision 21877). When an exception has raised within from the __init__ method of a user-defined class derived from a built-in type (e.g., UnaryPredicate0D and BinaryPredicate1D), some member variables of the base type are left uninitialized, leading to a null pointer reference in the "__dealloc__" function in the base type. To avoid this, pointer checking was added in the deallocators of those built-in types that can be used to define a subclass by a user.
This commit is contained in:
@@ -163,7 +163,8 @@ int UnaryFunction1DVec2f___init__(BPy_UnaryFunction1DVec2f* self, PyObject *args
|
||||
}
|
||||
void UnaryFunction1DVec2f___dealloc__(BPy_UnaryFunction1DVec2f* self)
|
||||
{
|
||||
delete self->uf1D_vec2f;
|
||||
if (self->uf1D_vec2f)
|
||||
delete self->uf1D_vec2f;
|
||||
UnaryFunction1D_Type.tp_dealloc((PyObject*)self);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user