summaryrefslogtreecommitdiff
path: root/python/libxml.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>2005-03-02 10:47:41 +0000
committerDaniel Veillard <veillard@src.gnome.org>2005-03-02 10:47:41 +0000
commit25c90c589b256f0925f081198c1525134a491e31 (patch)
treea6e95f1c6d6a55c45437403e1d32c5938dcd40ee /python/libxml.c
parentba70cc0de7be1ef743d1a569945cd6316de5a493 (diff)
downloadlibxml2-25c90c589b256f0925f081198c1525134a491e31.tar.gz
try to fix a problem with valgrind. applied memory leak fix from Brent
* Makefile.am doc/examples/Makefile.am python/tests/Makefile.am xstc/Makefile.am: try to fix a problem with valgrind. * python/generator.py python/libxml.c python/tests/Makefile.am python/tests/tstmem.py: applied memory leak fix from Brent Hendricks c.f. bug #165349 Daniel
Diffstat (limited to 'python/libxml.c')
-rw-r--r--python/libxml.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/python/libxml.c b/python/libxml.c
index ae1a0f4a..b5209949 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -1858,6 +1858,31 @@ libxml_xmlSetValidErrors(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
return (py_retval);
}
+
+PyObject *
+libxml_xmlFreeValidCtxt(PyObject *self ATTRIBUTE_UNUSED, PyObject *args) {
+ xmlValidCtxtPtr cur;
+ xmlValidCtxtPyCtxtPtr pyCtxt;
+ PyObject *pyobj_cur;
+
+ if (!PyArg_ParseTuple(args, (char *)"O:xmlFreeValidCtxt", &pyobj_cur))
+ return(NULL);
+ cur = (xmlValidCtxtPtr) PyValidCtxt_Get(pyobj_cur);
+
+ pyCtxt = (xmlValidCtxtPyCtxtPtr)(cur->userData);
+ if (pyCtxt != NULL)
+ {
+ Py_XDECREF(pyCtxt->error);
+ Py_XDECREF(pyCtxt->warn);
+ Py_XDECREF(pyCtxt->arg);
+ xmlFree(pyCtxt);
+ }
+
+ xmlFreeValidCtxt(cur);
+ Py_INCREF(Py_None);
+ return(Py_None);
+}
+
/************************************************************************
* *
* Per xmlTextReader error handler *
@@ -3618,6 +3643,7 @@ static PyMethodDef libxmlMethods[] = {
{(char *) "doc", libxml_doc, METH_VARARGS, NULL},
{(char *) "xmlNewNode", libxml_xmlNewNode, METH_VARARGS, NULL},
{(char *)"xmlSetValidErrors", libxml_xmlSetValidErrors, METH_VARARGS, NULL},
+ {(char *)"xmlFreeValidCtxt", libxml_xmlFreeValidCtxt, METH_VARARGS, NULL},
#ifdef LIBXML_OUTPUT_ENABLED
{(char *) "serializeNode", libxml_serializeNode, METH_VARARGS, NULL},
{(char *) "saveNodeTo", libxml_saveNodeTo, METH_VARARGS, NULL},