[librsvg: 3/10] Remove FilterValueList.is_applicable
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 3/10] Remove FilterValueList.is_applicable
- Date: Thu, 29 Apr 2021 00:06:45 +0000 (UTC)
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]