summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/talloc/pytalloc.c4
-rw-r--r--lib/tdb/pytdb.c2
-rw-r--r--libcli/nbt/pynbt.c8
-rw-r--r--source4/lib/ldb-samba/pyldb.c15
-rw-r--r--source4/lib/ldb/pyldb.c8
-rw-r--r--source4/lib/messaging/pymessaging.c4
-rw-r--r--source4/librpc/rpc/pyrpc.c3
-rw-r--r--source4/web_server/wsgi.c6
8 files changed, 22 insertions, 28 deletions
diff --git a/lib/talloc/pytalloc.c b/lib/talloc/pytalloc.c
index a8c46c96f8..614b81f057 100644
--- a/lib/talloc/pytalloc.c
+++ b/lib/talloc/pytalloc.c
@@ -96,7 +96,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;
- PyObject_Del(self);
+ self->ob_type->tp_free(self);
}
/**
@@ -112,8 +112,6 @@ static int py_talloc_default_cmp(PyObject *_obj1, PyObject *_obj2)
return ((char *)py_talloc_get_ptr(obj1) - (char *)py_talloc_get_ptr(obj2));
}
-
-
static PyTypeObject TallocObject_Type = {
.tp_name = "talloc.Object",
.tp_doc = "Python wrapper for a talloc-maintained object.",
diff --git a/lib/tdb/pytdb.c b/lib/tdb/pytdb.c
index 981459efef..0faba562de 100644
--- a/lib/tdb/pytdb.c
+++ b/lib/tdb/pytdb.c
@@ -479,7 +479,7 @@ static void tdb_object_dealloc(PyTdbObject *self)
{
if (!self->closed)
tdb_close(self->ctx);
- PyObject_Del(self);
+ self->ob_type->tp_free(self);
}
static PyObject *obj_getitem(PyTdbObject *self, PyObject *key)
diff --git a/libcli/nbt/pynbt.c b/libcli/nbt/pynbt.c
index 9251ecfc42..0bba2ec7a7 100644
--- a/libcli/nbt/pynbt.c
+++ b/libcli/nbt/pynbt.c
@@ -38,10 +38,10 @@ typedef struct {
struct nbt_name_socket *socket;
} nbt_node_Object;
-static void py_nbt_node_dealloc(PyObject *obj)
+static void py_nbt_node_dealloc(nbt_node_Object *self)
{
- talloc_free(((nbt_node_Object *)obj)->mem_ctx);
- PyObject_Del(obj);
+ talloc_free(self->mem_ctx);
+ self->ob_type->tp_free(self);
}
static PyObject *py_nbt_node_init(PyTypeObject *self, PyObject *args, PyObject *kwargs)
@@ -395,7 +395,7 @@ PyTypeObject nbt_node_Type = {
.tp_basicsize = sizeof(nbt_node_Object),
.tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
.tp_new = py_nbt_node_init,
- .tp_dealloc = py_nbt_node_dealloc,
+ .tp_dealloc = (destructor)py_nbt_node_dealloc,
.tp_methods = py_nbt_methods,
.tp_doc = "Node()\n"
"Create a new NetBIOS node\n"
diff --git a/source4/lib/ldb-samba/pyldb.c b/source4/lib/ldb-samba/pyldb.c
index cce653e20a..472a4664ea 100644
--- a/source4/lib/ldb-samba/pyldb.c
+++ b/source4/lib/ldb-samba/pyldb.c
@@ -45,8 +45,6 @@ static void PyErr_SetLdbError(PyObject *error, int ret, struct ldb_context *ldb_
ldb_ctx == NULL?ldb_strerror(ret):ldb_errstring(ldb_ctx)));
}
-
-
static PyObject *py_ldb_set_loadparm(PyObject *self, PyObject *args)
{
PyObject *py_lp_ctx;
@@ -116,33 +114,33 @@ static PyObject *py_ldb_set_opaque_integer(PyObject *self, PyObject *args)
if (old_val) {
*old_val = value;
Py_RETURN_NONE;
- }
+ }
tmp_ctx = talloc_new(ldb);
if (tmp_ctx == NULL) {
PyErr_NoMemory();
return NULL;
}
-
+
new_val = talloc(tmp_ctx, int);
if (new_val == NULL) {
talloc_free(tmp_ctx);
PyErr_NoMemory();
return NULL;
}
-
+
opaque_name_talloc = talloc_strdup(tmp_ctx, py_opaque_name);
if (opaque_name_talloc == NULL) {
talloc_free(tmp_ctx);
PyErr_NoMemory();
return NULL;
}
-
+
*new_val = value;
/* cache the domain_sid in the ldb */
ret = ldb_set_opaque(ldb, opaque_name_talloc, new_val);
-
+
if (ret != LDB_SUCCESS) {
talloc_free(tmp_ctx);
PyErr_SetLdbError(py_ldb_error, ret, ldb);
@@ -240,13 +238,12 @@ static PyMethodDef py_samba_ldb_methods[] = {
};
static PyTypeObject PySambaLdb = {
- .tp_name = "samba.Ldb",
+ .tp_name = "samba._ldb.Ldb",
.tp_doc = "Connection to a LDB database.",
.tp_methods = py_samba_ldb_methods,
.tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE,
};
-
void init_ldb(void)
{
PyObject *m;
diff --git a/source4/lib/ldb/pyldb.c b/source4/lib/ldb/pyldb.c
index 71720d60e0..354e83d8d3 100644
--- a/source4/lib/ldb/pyldb.c
+++ b/source4/lib/ldb/pyldb.c
@@ -8,9 +8,9 @@
Copyright (C) 2007-2010 Jelmer Vernooij <jelmer@samba.org>
Copyright (C) 2009-2010 Matthias Dieter Wallnöfer
- ** NOTE! The following LGPL license applies to the ldb
- ** library. This does NOT imply that all of Samba is released
- ** under the LGPL
+ ** NOTE! The following LGPL license applies to the ldb
+ ** library. This does NOT imply that all of Samba is released
+ ** under the LGPL
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -1502,7 +1502,7 @@ static PyObject *PyLdb_FromLdbContext(struct ldb_context *ldb_ctx)
static void py_ldb_dealloc(PyLdbObject *self)
{
talloc_free(self->mem_ctx);
- PyObject_Del(self);
+ self->ob_type->tp_free(self);
}
PyTypeObject PyLdb = {
diff --git a/source4/lib/messaging/pymessaging.c b/source4/lib/messaging/pymessaging.c
index 9854f4f95e..aece5efd09 100644
--- a/source4/lib/messaging/pymessaging.c
+++ b/source4/lib/messaging/pymessaging.c
@@ -61,7 +61,7 @@ typedef struct {
struct messaging_context *msg_ctx;
} messaging_Object;
-PyObject *py_messaging_connect(PyTypeObject *self, PyObject *args, PyObject *kwargs)
+static PyObject *py_messaging_connect(PyTypeObject *self, PyObject *args, PyObject *kwargs)
{
struct tevent_context *ev;
const char *kwnames[] = { "own_id", "messaging_path", NULL };
@@ -118,7 +118,7 @@ static void py_messaging_dealloc(PyObject *self)
{
messaging_Object *iface = (messaging_Object *)self;
talloc_free(iface->msg_ctx);
- PyObject_Del(self);
+ self->ob_type->tp_free(self);
}
static PyObject *py_messaging_send(PyObject *self, PyObject *args, PyObject *kwargs)
diff --git a/source4/librpc/rpc/pyrpc.c b/source4/librpc/rpc/pyrpc.c
index 46f1f061a8..ffd2376c74 100644
--- a/source4/librpc/rpc/pyrpc.c
+++ b/source4/librpc/rpc/pyrpc.c
@@ -219,12 +219,11 @@ static PyMethodDef dcerpc_interface_methods[] = {
{ NULL, NULL, 0, NULL },
};
-
static void dcerpc_interface_dealloc(PyObject* self)
{
dcerpc_InterfaceObject *interface = (dcerpc_InterfaceObject *)self;
talloc_free(interface->mem_ctx);
- PyObject_Del(self);
+ self->ob_type->tp_free(self);
}
static PyObject *dcerpc_interface_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
diff --git a/source4/web_server/wsgi.c b/source4/web_server/wsgi.c
index 73e668ebfd..1c105d0337 100644
--- a/source4/web_server/wsgi.c
+++ b/source4/web_server/wsgi.c
@@ -111,7 +111,7 @@ PyTypeObject web_request_Type = {
.tp_name = "wsgi.Request",
.tp_methods = web_request_methods,
.tp_basicsize = sizeof(web_request_Object),
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ .tp_flags = Py_TPFLAGS_DEFAULT,
};
typedef struct {
@@ -168,7 +168,7 @@ PyTypeObject error_Stream_Type = {
.tp_name = "wsgi.ErrorStream",
.tp_basicsize = sizeof(error_Stream_Object),
.tp_methods = error_Stream_methods,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ .tp_flags = Py_TPFLAGS_DEFAULT,
};
typedef struct {
@@ -242,7 +242,7 @@ PyTypeObject input_Stream_Type = {
.tp_name = "wsgi.InputStream",
.tp_basicsize = sizeof(input_Stream_Object),
.tp_methods = input_Stream_methods,
- .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
+ .tp_flags = Py_TPFLAGS_DEFAULT,
};
static PyObject *Py_InputHttpStream(struct websrv_context *web)