1
0
mirror of https://gitlab.gnome.org/GNOME/libxslt synced 2025-07-31 02:43:06 +03:00

convenience change try to avoid calling libxml2 cleanup function directly

* configure.in: convenience change
* python/libxsl.py python/libxslt-python-api.xml python/libxslt.c:
  try to avoid calling libxml2 cleanup function directly but go
  though the python wrapper of libxml2 for memory debug accounting.
Daniel
This commit is contained in:
Daniel Veillard
2004-07-02 13:53:31 +00:00
parent 916d36f00a
commit a3a4c25d47
6 changed files with 18 additions and 7 deletions

View File

@ -1,3 +1,10 @@
Fri Jul 2 15:51:49 CEST 2004 Daniel Veillard <daniel@veillard.com>
* configure.in: convenience change
* python/libxsl.py python/libxslt-python-api.xml python/libxslt.c:
try to avoid calling libxml2 cleanup function directly but go
though the python wrapper of libxml2 for memory debug accounting.
Fri Jul 2 16:24:12 HKT 2004 William Brack <wbrack@mmm.com.hk> Fri Jul 2 16:24:12 HKT 2004 William Brack <wbrack@mmm.com.hk>
* libxslt/keys.c: added namespace setup before calling XPath * libxslt/keys.c: added namespace setup before calling XPath

View File

@ -388,7 +388,7 @@ if test "${LOGNAME}" = "veillard" -a "`pwd`" = "/u/veillard/XSLT" ; then
DV_LINK="1" DV_LINK="1"
XSLTPROCDV="xsltproc.dv" XSLTPROCDV="xsltproc.dv"
INSTALLED_XSLT_LIB="" INSTALLED_XSLT_LIB=""
# PYTHONSODV="libxsltmod.so.dv" LIBXML_SRC="../../XML/"
fi fi
WIN32_EXTRA_LIBADD= WIN32_EXTRA_LIBADD=

View File

@ -84,6 +84,11 @@ class extensionModule:
"""Callback function when a transformation using it finishes""" """Callback function when a transformation using it finishes"""
pass pass
def cleanup():
"""Cleanup all libxslt and libxml2 memory allocated"""
libxsltmod.xsltPythonCleanup()
libxml2.cleanupParser()
# #
# Everything below this point is automatically generated # Everything below this point is automatically generated
# #

View File

@ -45,8 +45,8 @@
<arg name='URI' type='xmlChar *' info='the namespace or NULL'/> <arg name='URI' type='xmlChar *' info='the namespace or NULL'/>
<arg name='c' type='pythonObject' info='the python class instance'/> <arg name='c' type='pythonObject' info='the python class instance'/>
</function> </function>
<function name='xsltCleanup' file='python'> <function name='xsltPythonCleanup' file='python'>
<info>Cleanup all libxslt and libxml2 memory allocated</info> <info>Cleanup just libxslt (not libxml2) memory allocated</info>
<return type='void'/> <return type='void'/>
</function> </function>
<!-- xmlXPathParserContextPtr accessors --> <!-- xmlXPathParserContextPtr accessors -->

View File

@ -840,7 +840,7 @@ libxslt_xsltRegisterExtensionClass(PyObject *self ATTRIBUTE_UNUSED,
************************************************************************/ ************************************************************************/
PyObject * PyObject *
libxslt_xsltCleanup(PyObject *self ATTRIBUTE_UNUSED, libxslt_xsltPythonCleanup(PyObject *self ATTRIBUTE_UNUSED,
PyObject *args ATTRIBUTE_UNUSED) { PyObject *args ATTRIBUTE_UNUSED) {
if (libxslt_extModuleFunctions != NULL) { if (libxslt_extModuleFunctions != NULL) {
@ -856,7 +856,6 @@ libxslt_xsltCleanup(PyObject *self ATTRIBUTE_UNUSED,
xmlHashFree(libxslt_extModuleClasses, deallocateClasse); xmlHashFree(libxslt_extModuleClasses, deallocateClasse);
} }
xsltCleanupGlobals(); xsltCleanupGlobals();
xmlCleanupParser();
Py_INCREF(Py_None); Py_INCREF(Py_None);
return(Py_None); return(Py_None);
} }

View File

@ -17,7 +17,7 @@ unregisterExtModuleTopLevel()
registerAllExtras() registerAllExtras()
# functions from module python # functions from module python
cleanup() pythonCleanup()
registerErrorHandler() registerErrorHandler()
registerExtModuleElement() registerExtModuleElement()
registerExtModuleFunction() registerExtModuleFunction()