diff options
Diffstat (limited to 'gobject')
| -rw-r--r-- | gobject/gobjectmodule.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gobject/gobjectmodule.c b/gobject/gobjectmodule.c index 1b32e38..300cf37 100644 --- a/gobject/gobjectmodule.c +++ b/gobject/gobjectmodule.c @@ -1102,6 +1102,12 @@ pygobject_dealloc(PyGObject *self) g_object_set_qdata_full(obj, pygobject_ownedref_key, self, pygobject_destroy_notify); g_object_unref(obj); + + /* we ref the type, so subtype_dealloc() doesn't kill off our + * instance's type. */ + if (self->ob_type->tp_flags & Py_TPFLAGS_HEAPTYPE) + Py_INCREF(self->ob_type); + return; } if (obj && !self->hasref) /* don't unref the GObject if it owns us */ |
