diff --git a/ChangeLog b/ChangeLog index a2c82170..70734bad 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Jul 27 12:33:52 EDT 2001 Daniel Veillard + + * libxslt/extensions.c xsltproc/xsltproc.c: quick cleanup + of memory allocations, raise a bug in the test suite, also + need to be centralized as a single cleanup function. + Fri Jul 27 10:50:39 EDT 2001 Daniel Veillard * libxslt/transform.[ch]: applied changes from Tom Moog #58002 diff --git a/libxslt/extensions.c b/libxslt/extensions.c index 0fd72b08..31d1eef3 100644 --- a/libxslt/extensions.c +++ b/libxslt/extensions.c @@ -943,6 +943,17 @@ xsltUnregisterExtModuleFunction (const xmlChar *name, return xmlHashRemoveEntry2 (xsltFunctionsHash, name, URI, NULL); } +/** + * xsltUnregisterAllExtModuleFunction: + * + * Unregisters all extension module function + */ +void +xsltUnregisterAllExtModuleFunction (void) { + xmlHashFree(xsltFunctionsHash, NULL); + xsltFunctionsHash = NULL; +} + /** * xsltRegisterExtModuleElement: * @name: the element name @@ -1072,6 +1083,17 @@ xsltUnregisterExtModuleElement (const xmlChar *name, (xmlHashDeallocator) xsltFreeExtElement); } +/** + * xsltUnregisterAllExtModuleElement: + * + * Unregisters all extension module element + */ +void +xsltUnregisterAllExtModuleElement (void) { + xmlHashFree(xsltElementsHash, (xmlHashDeallocator) xsltFreeExtElement); + xsltElementsHash = NULL; +} + /** * xsltRegisterExtModuleTopLevel: * @name: the top-level element name @@ -1135,6 +1157,17 @@ xsltUnregisterExtModuleTopLevel (const xmlChar *name, return xmlHashRemoveEntry2 (xsltTopLevelsHash, name, URI, NULL); } +/** + * xsltUnregisterAllExtModuleTopLevel: + * + * Unregisters all extension module function + */ +void +xsltUnregisterAllExtModuleTopLevel (void) { + xmlHashFree(xsltTopLevelsHash, NULL); + xsltTopLevelsHash = NULL; +} + /************************************************************************ * * diff --git a/xsltproc/xsltproc.c b/xsltproc/xsltproc.c index 0ebfac84..718c1fbb 100644 --- a/xsltproc/xsltproc.c +++ b/xsltproc/xsltproc.c @@ -506,6 +506,9 @@ main(int argc, char **argv) xsltFreeStylesheet(cur); } xsltUnregisterAllExtModules(); + xsltUnregisterAllExtModuleFunction(); + xsltUnregisterAllExtModuleElement(); + xsltUnregisterAllExtModuleTopLevel(); xmlCleanupParser(); xmlMemoryDump(); return (0);