summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Magne Ingebrigtsen <larsi@gnus.org>2011-09-03 23:59:25 +0200
committerLars Magne Ingebrigtsen <larsi@gnus.org>2011-09-03 23:59:25 +0200
commitfcb901a77a0a3eaf21f0126466ae84fdc18fce2c (patch)
treeee4518e0949821d5d74c5e203fe6aaebd24e52da
parent2784c43403c278a542a9f930a4da07a4a2ca284c (diff)
downloademacs-fcb901a77a0a3eaf21f0126466ae84fdc18fce2c.tar.gz
Fix up xmlCleanupParser sequence.
* xml.c (parse_region): Don't call xmlCleanupParser after parsing, since this reportedly can destroy thread storage. * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
-rw-r--r--src/ChangeLog7
-rw-r--r--src/emacs.c4
-rw-r--r--src/xml.c1
3 files changed, 11 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 52ec796d6cf..de12d8f0314 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2011-09-03 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * emacs.c (shut_down_emacs): Call xmlCleanupParser on shutdown.
+
+ * xml.c (parse_region): Don't call xmlCleanupParser after parsing,
+ since this reportedly can destroy thread storage.
+
2011-08-30 Chong Yidong <cyd@stupidchicken.com>
* syntax.c (find_defun_start): Update all cache variables if
diff --git a/src/emacs.c b/src/emacs.c
index 7039f063dc2..f68c47ffed0 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -2097,6 +2097,10 @@ shut_down_emacs (int sig, int no_x, Lisp_Object stuff)
#ifdef HAVE_NS
ns_term_shutdown (sig);
#endif
+
+#ifdef HAVE_LIBXML2
+ xmlCleanupParser ();
+#endif
}
diff --git a/src/xml.c b/src/xml.c
index 55352baae3a..8b485e73649 100644
--- a/src/xml.c
+++ b/src/xml.c
@@ -141,7 +141,6 @@ parse_region (Lisp_Object start, Lisp_Object end, Lisp_Object base_url, int html
Fcons (Qnil, Fnreverse (Fcons (r, result))));
xmlFreeDoc (doc);
- xmlCleanupParser ();
}
return result;