aboutsummaryrefslogtreecommitdiffstats
path: root/encoding.c
diff options
context:
space:
mode:
authorDaniel Veillard <veillard@src.gnome.org>1999-11-24 18:04:22 +0000
committerDaniel Veillard <veillard@src.gnome.org>1999-11-24 18:04:22 +0000
commita819dace566ea336906c1c93ffceeebd992d1bea (patch)
tree99ab826b1eb0d1352779b4b030519ff56db4541c /encoding.c
parent11a48ec6f439c0a12a02ac503507086aaf260dcc (diff)
downloadandroid_external_libxml2-a819dace566ea336906c1c93ffceeebd992d1bea.tar.gz
android_external_libxml2-a819dace566ea336906c1c93ffceeebd992d1bea.tar.bz2
android_external_libxml2-a819dace566ea336906c1c93ffceeebd992d1bea.zip
Added cleanup routines, cleanup with -pedantic on linux, closed #3788, Daniel
Diffstat (limited to 'encoding.c')
-rw-r--r--encoding.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/encoding.c b/encoding.c
index 50deb2c4..a27aa9d1 100644
--- a/encoding.c
+++ b/encoding.c
@@ -432,6 +432,29 @@ xmlInitCharEncodingHandlers(void) {
}
/**
+ * xmlCleanupCharEncodingHandlers:
+ *
+ * Cleanup the memory allocated for the char encoding support, it
+ * unregisters all the encoding handlers.
+ */
+void
+xmlCleanupCharEncodingHandlers(void) {
+ if (handlers == NULL) return;
+
+ for (;nbCharEncodingHandler > 0;) {
+ nbCharEncodingHandler--;
+ if (handlers[nbCharEncodingHandler] != NULL) {
+ xmlFree(handlers[nbCharEncodingHandler]->name);
+ xmlFree(handlers[nbCharEncodingHandler]);
+ }
+ }
+ xmlFree(handlers);
+ handlers = NULL;
+ nbCharEncodingHandler = 0;
+ xmlDefaultCharEncodingHandler = NULL;
+}
+
+/**
* xmlRegisterCharEncodingHandler:
* @handler: the xmlCharEncodingHandlerPtr handler block
*