summaryrefslogtreecommitdiffstats
path: root/lib/talloc
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-09-28 15:03:17 +0200
committerJelmer Vernooij <jelmer@samba.org>2009-09-28 15:03:17 +0200
commit830adcd58d6b1fbc3e693762ab2e8a8cfd7ecab3 (patch)
tree4794e4679b0182932c12e8d7b63789ba5dc1ca7f /lib/talloc
parent5c0edba8c2ade663d630a3b9f3ff0c4862129783 (diff)
downloadsamba-830adcd58d6b1fbc3e693762ab2e8a8cfd7ecab3.tar.gz
samba-830adcd58d6b1fbc3e693762ab2e8a8cfd7ecab3.tar.xz
samba-830adcd58d6b1fbc3e693762ab2e8a8cfd7ecab3.zip
pidl: Avoid using talloc_free as function pointer, since it may be a
macro.
Diffstat (limited to 'lib/talloc')
-rw-r--r--lib/talloc/pytalloc.c10
-rw-r--r--lib/talloc/pytalloc.h2
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/talloc/pytalloc.c b/lib/talloc/pytalloc.c
index 646aac87f25..c6decf33f16 100644
--- a/lib/talloc/pytalloc.c
+++ b/lib/talloc/pytalloc.c
@@ -81,3 +81,13 @@ PyObject *py_talloc_default_repr(PyObject *obj)
return PyString_FromFormat("<%s talloc object at 0x%p>",
type->tp_name, talloc_obj->ptr);
}
+
+static void py_cobject_talloc_free(void *ptr)
+{
+ talloc_free(ptr);
+}
+
+PyObject *PyCObject_FromTallocPtr(void *ptr)
+{
+ return PyCObject_FromVoidPtr(ptr, py_cobject_talloc_free);
+}
diff --git a/lib/talloc/pytalloc.h b/lib/talloc/pytalloc.h
index 3bfb2729587..9b6587261c2 100644
--- a/lib/talloc/pytalloc.h
+++ b/lib/talloc/pytalloc.h
@@ -52,4 +52,6 @@ PyObject *py_talloc_default_repr(PyObject *py_obj);
#define py_talloc_new(type, typeobj) py_talloc_steal(typeobj, talloc_zero(NULL, type))
+PyObject *PyCObject_FromTallocPtr(void *);
+
#endif /* _PY_TALLOC_H_ */