[librsvg: 3/10] Remove FilterValueList.is_applicable




commit aae68b8e5e0cc904d5cdb15eed8719ed6b6d0157
Author: Federico Mena Quintero <federico gnome org>
Date:   Wed Apr 28 13:08:45 2021 -0500

    Remove FilterValueList.is_applicable
    
    Validation of the list of FilterValue already happens as part of
    FilterValue.to_filter_spec().

 src/drawing_ctx.rs | 42 +++++++++++++++++++-----------------------
 src/filter.rs      | 42 ------------------------------------------
 2 files changed, 19 insertions(+), 65 deletions(-)
---
diff --git a/src/drawing_ctx.rs b/src/drawing_ctx.rs
index 2bafca39..eff1857d 100644
--- a/src/drawing_ctx.rs
+++ b/src/drawing_ctx.rs
@@ -910,29 +910,25 @@ impl DrawingCtx {
         let surface = match filters {
             Filter::None => surface_to_filter,
             Filter::List(filter_list) => {
-                if filter_list.is_applicable(&node_name, acquired_nodes) {
-                    if let Ok(specs) = filter_list
-                        .iter()
-                        .map(|filter_value| {
-                            filter_value.to_filter_spec(acquired_nodes, self, node_name)
-                        })
-                        .collect::<Result<Vec<FilterSpec>, _>>()
-                    {
-                        specs.iter().try_fold(surface_to_filter, |surface, spec| {
-                            filters::render(
-                                &spec,
-                                stroke_paint_source.clone(),
-                                fill_paint_source.clone(),
-                                surface,
-                                acquired_nodes,
-                                self,
-                                self.get_transform(),
-                                node_bbox,
-                            )
-                        })?
-                    } else {
-                        surface_to_filter
-                    }
+                if let Ok(specs) = filter_list
+                    .iter()
+                    .map(|filter_value| {
+                        filter_value.to_filter_spec(acquired_nodes, self, node_name)
+                    })
+                    .collect::<Result<Vec<FilterSpec>, _>>()
+                {
+                    specs.iter().try_fold(surface_to_filter, |surface, spec| {
+                        filters::render(
+                            &spec,
+                            stroke_paint_source.clone(),
+                            fill_paint_source.clone(),
+                            surface,
+                            acquired_nodes,
+                            self,
+                            self.get_transform(),
+                            node_bbox,
+                        )
+                    })?
                 } else {
                     surface_to_filter
                 }
diff --git a/src/filter.rs b/src/filter.rs
index 3a9d96f3..3123f9f9 100644
--- a/src/filter.rs
+++ b/src/filter.rs
@@ -190,48 +190,6 @@ impl FilterValueList {
     pub fn iter(&self) -> Iter<'_, FilterValue> {
         self.0.iter()
     }
-
-    /// Check that at least one filter URI exists and that all contained
-    /// URIs reference existing <filter> elements.
-    ///
-    /// The `node_name` refers to the node being filtered; it is just
-    /// to log an error in case the filter value list is not
-    /// applicable.
-    pub fn is_applicable(&self, node_name: &str, acquired_nodes: &mut AcquiredNodes<'_>) -> bool {
-        if self.is_empty() {
-            return false;
-        }
-
-        self.iter()
-            .map(|v| match v {
-                FilterValue::Url(v) => v,
-            })
-            .all(|v| match acquired_nodes.acquire(v) {
-                Ok(acquired) => {
-                    let filter_node = acquired.get();
-
-                    match *filter_node.borrow_element() {
-                        Element::Filter(_) => true,
-                        _ => {
-                            rsvg_log!(
-                                "element {} will not be filtered since \"{}\" is not a filter",
-                                node_name,
-                                v,
-                            );
-                            false
-                        }
-                    }
-                }
-                _ => {
-                    rsvg_log!(
-                        "element {} will not be filtered since its filter \"{}\" was not found",
-                        node_name,
-                        v,
-                    );
-                    false
-                }
-            })
-    }
 }
 
 impl Parse for FilterValueList {


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