[librsvg: 28/48] feImage: Use Reference::parse to see if we are dealing with a node or a whole image



commit 3fa7e9e2f575f7cb9ec4f91c68856eec6d8b7299
Author: Federico Mena Quintero <federico gnome org>
Date:   Mon Sep 10 14:56:56 2018 -0500

    feImage: Use Reference::parse to see if we are dealing with a node or a whole image

 rsvg_internals/src/filters/image.rs | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
---
diff --git a/rsvg_internals/src/filters/image.rs b/rsvg_internals/src/filters/image.rs
index 6d7e103a..aabfcf5b 100644
--- a/rsvg_internals/src/filters/image.rs
+++ b/rsvg_internals/src/filters/image.rs
@@ -10,6 +10,7 @@ use libc;
 
 use aspect_ratio::AspectRatio;
 use attributes::Attribute;
+use defs::Reference;
 use drawing_ctx::DrawingCtx;
 use error::RenderingError;
 use handle::RsvgHandle;
@@ -236,12 +237,11 @@ impl Filter for Image {
         let bounds_builder = self.base.get_bounds(ctx);
         let bounds = bounds_builder.into_irect(draw_ctx);
 
-        let output_surface = match self.render_node(ctx, draw_ctx, bounds, href) {
-            Err(FilterError::InvalidInput) => {
+        let output_surface = match Reference::parse(href).map_err(|_| FilterError::InvalidInput)? {
+            Reference::PlainUri(_) => {
                 self.render_external_image(ctx, draw_ctx, bounds_builder, href)?
             }
-            Err(err) => return Err(err),
-            Ok(surface) => surface,
+            _ => self.render_node(ctx, draw_ctx, bounds, href)?,
         };
 
         Ok(FilterResult {


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