diff options
author | Daniel Veillard <veillard@src.gnome.org> | 2005-03-02 10:47:41 +0000 |
---|---|---|
committer | Daniel Veillard <veillard@src.gnome.org> | 2005-03-02 10:47:41 +0000 |
commit | 25c90c589b256f0925f081198c1525134a491e31 (patch) | |
tree | a6e95f1c6d6a55c45437403e1d32c5938dcd40ee /python/libxml.c | |
parent | ba70cc0de7be1ef743d1a569945cd6316de5a493 (diff) | |
download | libxml2-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.c | 26 |
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}, |