[librsvg: 15/18] rsvg_acquire_gvfs_data: Don't resolve relative files here; we get passed a full URI



commit 8b01a9411e54cf9fe164420fc2e30e82c0ceb804
Author: Federico Mena Quintero <federico gnome org>
Date:   Fri Nov 23 15:11:57 2018 -0600

    rsvg_acquire_gvfs_data: Don't resolve relative files here; we get passed a full URI

 librsvg/rsvg-handle.c |  1 -
 librsvg/rsvg-io.c     | 27 ++++++++-------------------
 librsvg/rsvg-io.h     |  1 -
 3 files changed, 8 insertions(+), 21 deletions(-)
---
diff --git a/librsvg/rsvg-handle.c b/librsvg/rsvg-handle.c
index 61cea922..13bb0aad 100644
--- a/librsvg/rsvg-handle.c
+++ b/librsvg/rsvg-handle.c
@@ -1676,7 +1676,6 @@ _rsvg_handle_acquire_data (RsvgHandle *handle,
 
     if (allow_load (priv->base_gfile, uri, error)) {
         data = _rsvg_io_acquire_data (uri,
-                                      rsvg_handle_get_base_uri (handle),
                                       content_type,
                                       len,
                                       handle->priv->cancellable,
diff --git a/librsvg/rsvg-io.c b/librsvg/rsvg-io.c
index f07ee462..a7a69ebf 100644
--- a/librsvg/rsvg-io.c
+++ b/librsvg/rsvg-io.c
@@ -78,13 +78,12 @@ rsvg_acquire_gvfs_stream (const char *uri,
 
 static char *
 rsvg_acquire_gvfs_data (const char *uri,
-                        const char *base_uri,
                         char **out_mime_type,
                         gsize *out_len,
                         GCancellable *cancellable,
                         GError **error)
 {
-    GFile *base, *file;
+    GFile *file;
     GError *err;
     char *data;
     gsize len;
@@ -95,24 +94,15 @@ rsvg_acquire_gvfs_data (const char *uri,
 
     err = NULL;
     data = NULL;
-    if (!(res = g_file_load_contents (file, cancellable, &data, &len, NULL, &err)) &&
-        g_error_matches (err, G_IO_ERROR, G_IO_ERROR_NOT_FOUND) &&
-        base_uri != NULL) {
-        g_clear_error (&err);
-        g_object_unref (file);
-
-        base = g_file_new_for_uri (base_uri);
-        file = g_file_resolve_relative_path (base, uri);
-        g_object_unref (base);
 
-        res = g_file_load_contents (file, cancellable, &data, &len, NULL, &err);
-    }
+    res = g_file_load_contents (file, cancellable, &data, &len, NULL, &err);
 
     g_object_unref (file);
-
-    if (err) {
-        g_propagate_error (error, err);
-        return NULL;
+    if (!res) {
+        if (err) {
+            g_propagate_error (error, err);
+            return NULL;
+        }
     }
 
     if (out_mime_type &&
@@ -127,7 +117,6 @@ rsvg_acquire_gvfs_data (const char *uri,
 
 char *
 _rsvg_io_acquire_data (const char *uri,
-                       const char *base_uri, 
                        char **mime_type,
                        gsize *len,
                        GCancellable *cancellable,
@@ -148,7 +137,7 @@ _rsvg_io_acquire_data (const char *uri,
     if (strncmp (uri, "data:", 5) == 0)
       return rsvg_decode_data_uri (uri, mime_type, len, error);
 
-    if ((data = rsvg_acquire_gvfs_data (uri, base_uri, mime_type, len, cancellable, error)))
+    if ((data = rsvg_acquire_gvfs_data (uri, mime_type, len, cancellable, error)))
       return data;
 
     return NULL;
diff --git a/librsvg/rsvg-io.h b/librsvg/rsvg-io.h
index 93400517..831dd582 100644
--- a/librsvg/rsvg-io.h
+++ b/librsvg/rsvg-io.h
@@ -27,7 +27,6 @@
 #include <gio/gio.h>
 
 char *_rsvg_io_acquire_data (const char *uri,
-                            const char *base_uri,
                             char **mime_type,
                             gsize *len,
                             GCancellable *cancellable,


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