[librsvg/librsvg-2.40] rsvg_handle_dispose(): Free the libxml2 parser context
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg/librsvg-2.40] rsvg_handle_dispose(): Free the libxml2 parser context
- Date: Tue, 8 Aug 2017 18:38:53 +0000 (UTC)
commit b617c1a9407e29a26a4965554a51ef3fd81193e5
Author: Federico Mena Quintero <federico gnome org>
Date: Tue Aug 8 13:19:06 2017 -0500
rsvg_handle_dispose(): Free the libxml2 parser context
If the RsvgHandle was written to but not closed, then we'll still have
an XML parser context at dispose time - don't leak it.
Fixes the leak in https://bugzilla.gnome.org/show_bug.cgi?id=777833#c2
rsvg-base.c | 4 ++--
rsvg-gobject.c | 2 ++
2 files changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/rsvg-base.c b/rsvg-base.c
index c6ded51..26bbc35 100644
--- a/rsvg-base.c
+++ b/rsvg-base.c
@@ -1888,12 +1888,12 @@ rsvg_handle_read_stream_sync (RsvgHandle *handle,
goto out;
}
- priv->ctxt = rsvg_free_xml_parser_and_doc (priv->ctxt);
-
res = TRUE;
out:
+ priv->ctxt = rsvg_free_xml_parser_and_doc (priv->ctxt);
+
g_object_unref (stream);
priv->error = NULL;
diff --git a/rsvg-gobject.c b/rsvg-gobject.c
index 888c403..9b7fdc1 100644
--- a/rsvg-gobject.c
+++ b/rsvg-gobject.c
@@ -105,6 +105,8 @@ rsvg_handle_dispose (GObject *instance)
self->priv->is_disposed = TRUE;
+ self->priv->ctxt = rsvg_free_xml_parser_and_doc (self->priv->ctxt);
+
g_hash_table_destroy (self->priv->entities);
rsvg_defs_free (self->priv->defs);
g_hash_table_destroy (self->priv->css_props);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]