[librsvg] rsvg_load_read_stream_sync(): No need to set the load->xml.ctxt; use a local variable
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg] rsvg_load_read_stream_sync(): No need to set the load->xml.ctxt; use a local variable
- Date: Wed, 5 Dec 2018 20:49:40 +0000 (UTC)
commit 45aae233700f0cc0b12ea8aa15f52e1af47185bf
Author: Federico Mena Quintero <federico gnome org>
Date: Wed Dec 5 14:47:22 2018 -0600
rsvg_load_read_stream_sync(): No need to set the load->xml.ctxt; use a local variable
It turns out that load->xml.ctxt is useful just for the write/close
API, not for streams. This is because the write/close API requires a
long-lived XML parsing context.
For streams, though, the parser is created and consumed immediately.
librsvg/rsvg-load.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)
---
diff --git a/librsvg/rsvg-load.c b/librsvg/rsvg-load.c
index 8ed4ebee..e809b2f9 100644
--- a/librsvg/rsvg-load.c
+++ b/librsvg/rsvg-load.c
@@ -307,6 +307,7 @@ rsvg_load_read_stream_sync (RsvgLoad *load,
{
GError *err = NULL;
gboolean res = FALSE;
+ xmlParserCtxtPtr xml_parser;
stream = rsvg_get_input_stream_for_loading (stream, cancellable, error);
if (stream == NULL) {
@@ -318,24 +319,24 @@ rsvg_load_read_stream_sync (RsvgLoad *load,
load->cancellable = cancellable ? g_object_ref (cancellable) : NULL;
g_assert (load->xml.ctxt == NULL);
- load->xml.ctxt = rsvg_create_xml_stream_parser (load->xml.rust_state,
- load->unlimited_size,
- stream,
- cancellable,
- &err);
+ xml_parser = rsvg_create_xml_stream_parser (load->xml.rust_state,
+ load->unlimited_size,
+ stream,
+ cancellable,
+ &err);
- if (!load->xml.ctxt) {
+ if (!xml_parser) {
g_assert (err != NULL);
g_propagate_error (error, err);
goto out;
}
- if (xmlParseDocument (load->xml.ctxt) != 0) {
+ if (xmlParseDocument (xml_parser) != 0) {
if (err) {
g_propagate_error (error, err);
} else {
- set_error_from_xml (error, load->xml.ctxt);
+ set_error_from_xml (error, xml_parser);
}
goto out;
@@ -350,7 +351,7 @@ rsvg_load_read_stream_sync (RsvgLoad *load,
out:
- load->xml.ctxt = free_xml_parser_and_doc (load->xml.ctxt);
+ xml_parser = free_xml_parser_and_doc (xml_parser);
g_object_unref (stream);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]