diff options
author | Michael Catanzaro <mcatanzaro@gnome.org> | 2020-10-29 14:21:19 -0500 |
---|---|---|
committer | Shaun McCance <shaunm@gnome.org> | 2020-11-21 10:39:52 -0500 |
commit | c5586172144d1e31880438a9711e3e686a2ed40d (patch) | |
tree | 6e4cd1ecd9c84318ae6cd5c4bff896bee8277c27 | |
parent | b4d3a1ab67ca14c48df36d88a688cc976fd250f5 (diff) | |
download | yelp-c5586172144d1e31880438a9711e3e686a2ed40d.tar.gz |
mallard-document: fix crash when reloading document
libxml memory management is quite uncleary, but I believe priv->cache
has ownership of priv->mallard_ns, so the later is invalidated when the
former is freed. We need to recreate it here.
Reportedly fixes #122 for Shaun. (I was still seeing another crash, but
it's probably a separate issue.)
-rw-r--r-- | libyelp/yelp-mallard-document.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/libyelp/yelp-mallard-document.c b/libyelp/yelp-mallard-document.c index f417a361..6a5b643c 100644 --- a/libyelp/yelp-mallard-document.c +++ b/libyelp/yelp-mallard-document.c @@ -1168,6 +1168,7 @@ mallard_monitor_changed (GFileMonitor *monitor, xmlFreeDoc (priv->cache); priv->cache = xmlNewDoc (BAD_CAST "1.0"); priv->cache_ns = xmlNewNs (NULL, CACHE_NS, BAD_CAST "cache"); + priv->mallard_ns = xmlNewNs (NULL, MALLARD_NS, BAD_CAST "mal"); cur = xmlNewDocNode (priv->cache, priv->cache_ns, BAD_CAST "cache", NULL); xmlDocSetRootElement (priv->cache, cur); priv->cache_ns->next = priv->mallard_ns; |