From 4350e0c3c99fedab99ab1cc680e9d8fe555162e9 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 29 Dec 2010 15:58:12 +0100 Subject: s4-python: Properly call PyObject_Del from all destructors. --- lib/talloc/pytalloc.c | 2 +- source4/lib/ldb/pyldb.c | 12 ++++++------ source4/libnet/py_net.c | 1 + 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/talloc/pytalloc.c b/lib/talloc/pytalloc.c index 6ddcac988b..457358ed8f 100644 --- a/lib/talloc/pytalloc.c +++ b/lib/talloc/pytalloc.c @@ -94,7 +94,7 @@ static void py_talloc_dealloc(PyObject* self) py_talloc_Object *obj = (py_talloc_Object *)self; assert(talloc_unlink(NULL, obj->talloc_ctx) != -1); obj->talloc_ctx = NULL; - self->ob_type->tp_free(self); + PyObject_Del(self); } /** diff --git a/source4/lib/ldb/pyldb.c b/source4/lib/ldb/pyldb.c index d67d53f982..5446aafb92 100644 --- a/source4/lib/ldb/pyldb.c +++ b/source4/lib/ldb/pyldb.c @@ -358,7 +358,7 @@ static PyObject *py_ldb_dn_new(PyTypeObject *type, PyObject *args, PyObject *kwa static void py_ldb_dn_dealloc(PyLdbDnObject *self) { talloc_free(self->mem_ctx); - self->ob_type->tp_free(self); + PyObject_Del(self); } PyTypeObject PyLdbDn = { @@ -1500,7 +1500,7 @@ static PyObject *PyLdb_FromLdbContext(struct ldb_context *ldb_ctx) static void py_ldb_dealloc(PyLdbObject *self) { talloc_free(self->mem_ctx); - self->ob_type->tp_free(self); + PyObject_Del(self); } PyTypeObject PyLdb = { @@ -1694,7 +1694,7 @@ static PyMethodDef py_ldb_module_methods[] = { static void py_ldb_module_dealloc(PyLdbModuleObject *self) { talloc_free(self->mem_ctx); - self->ob_type->tp_free(self); + PyObject_Del(self); } PyTypeObject PyLdbModule = { @@ -1985,7 +1985,7 @@ static PyObject *py_ldb_msg_element_str(PyLdbMessageElementObject *self) static void py_ldb_msg_element_dealloc(PyLdbMessageElementObject *self) { talloc_free(self->mem_ctx); - self->ob_type->tp_free(self); + PyObject_Del(self); } static PyTypeObject PyLdbMessageElement = { @@ -2322,7 +2322,7 @@ static PyObject *py_ldb_msg_repr(PyLdbMessageObject *self) static void py_ldb_msg_dealloc(PyLdbMessageObject *self) { talloc_free(self->mem_ctx); - self->ob_type->tp_free(self); + PyObject_Del(self); } static int py_ldb_msg_compare(PyLdbMessageObject *py_msg1, @@ -2394,7 +2394,7 @@ PyObject *PyLdbTree_FromTree(struct ldb_parse_tree *tree) static void py_ldb_tree_dealloc(PyLdbTreeObject *self) { talloc_free(self->mem_ctx); - self->ob_type->tp_free(self); + PyObject_Del(self); } PyTypeObject PyLdbTree = { diff --git a/source4/libnet/py_net.c b/source4/libnet/py_net.c index 48cf4a416d..514f9dfe3c 100644 --- a/source4/libnet/py_net.c +++ b/source4/libnet/py_net.c @@ -540,6 +540,7 @@ static PyMethodDef net_obj_methods[] = { static void py_net_dealloc(py_net_Object *self) { talloc_free(self->mem_ctx); + PyObject_Del(self); } static PyObject *net_obj_new(PyTypeObject *type, PyObject *args, PyObject *kwargs) -- cgit