[yelp/mcatanzaro/#122] mallard-document: fix crash when reloading document




commit 226fc1abcb0485bac53e2c3f6366b74caa4571d3
Author: Michael Catanzaro <mcatanzaro gnome org>
Date:   Thu Oct 29 14:21:19 2020 -0500

    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.)

 libyelp/yelp-mallard-document.c | 1 +
 1 file changed, 1 insertion(+)
---
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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]