[librsvg: 35/45] DrawingCtx::get_node_of_type(): Take a &Fragment, not Option<&Fragment>



commit 0419915f91f1847cf0c39af5d99adec3c862f2ef
Author: Federico Mena Quintero <federico gnome org>
Date:   Mon Sep 30 13:57:38 2019 -0500

    DrawingCtx::get_node_of_type(): Take a &Fragment, not Option<&Fragment>
    
    There's no need for that "convenience" anymore.

 rsvg_internals/src/drawing_ctx.rs | 18 +++++++-----------
 rsvg_internals/src/marker.rs      |  2 +-
 rsvg_internals/src/pattern.rs     |  2 +-
 3 files changed, 9 insertions(+), 13 deletions(-)
---
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index 04692a3e..da4c1645 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -341,8 +341,7 @@ impl DrawingCtx {
     ) -> (Option<RsvgNode>, Option<RsvgNode>) {
         clip_uri
             .and_then(|fragment| {
-                self.acquired_nodes
-                    .get_node_of_type(Some(fragment), NodeType::ClipPath)
+                self.acquired_nodes.get_node_of_type(fragment, NodeType::ClipPath)
             })
             .and_then(|acquired| {
                 let clip_node = acquired.get().clone();
@@ -470,10 +469,10 @@ impl DrawingCtx {
 
                     // Mask
 
-                    if let Some(mask) = mask {
+                    if let Some(fragment) = mask {
                         if let Some(acquired) = dc
                             .acquired_nodes
-                            .get_node_of_type(Some(mask), NodeType::Mask)
+                            .get_node_of_type(fragment, NodeType::Mask)
                         {
                             let mask_node = acquired.get();
 
@@ -485,7 +484,7 @@ impl DrawingCtx {
                                     .map(|_: ()| bbox)
                             });
                         } else {
-                            rsvg_log!("element {} references nonexistent mask \"{}\"", node, mask);
+                            rsvg_log!("element {} references nonexistent mask \"{}\"", node, fragment);
                         }
                     } else {
                         // No mask, so composite the temporary surface
@@ -552,7 +551,7 @@ impl DrawingCtx {
     ) -> Result<cairo::ImageSurface, RenderingError> {
         match self
             .acquired_nodes
-            .get_node_of_type(Some(filter_uri), NodeType::Filter)
+            .get_node_of_type(filter_uri, NodeType::Filter)
         {
             Some(acquired) => {
                 let filter_node = acquired.get();
@@ -1114,17 +1113,14 @@ impl AcquiredNodes {
     // Note that if you acquire a node, you have to release it before trying to
     // acquire it again.  If you acquire a node "#foo" and don't release it before
     // trying to acquire "foo" again, you will obtain a None the second time.
-    //
-    // For convenience, this function will return None if url is None.
 
     // FIXME: return a Result<AcquiredNode, RenderingError::InvalidReference>
     pub fn get_node_of_type(
         &self,
-        fragment: Option<&Fragment>,
+        fragment: &Fragment,
         node_type: NodeType,
     ) -> Option<AcquiredNode> {
-        fragment
-            .and_then(move |fragment| self.get_node(fragment))
+        self.get_node(fragment)
             .and_then(|acquired| {
                 if acquired.get().borrow().get_type() == node_type {
                     Some(acquired)
diff --git a/rsvg_internals/src/marker.rs b/rsvg_internals/src/marker.rs
index 127829d4..3418234b 100644
--- a/rsvg_internals/src/marker.rs
+++ b/rsvg_internals/src/marker.rs
@@ -590,7 +590,7 @@ fn emit_marker_by_name(
 ) -> Result<BoundingBox, RenderingError> {
     if let Some(acquired) = draw_ctx
         .acquired_nodes()
-        .get_node_of_type(Some(name), NodeType::Marker)
+        .get_node_of_type(name, NodeType::Marker)
     {
         let node = acquired.get();
 
diff --git a/rsvg_internals/src/pattern.rs b/rsvg_internals/src/pattern.rs
index eeb43ebc..98f622be 100644
--- a/rsvg_internals/src/pattern.rs
+++ b/rsvg_internals/src/pattern.rs
@@ -154,7 +154,7 @@ impl PaintSource for NodePattern {
             if let Some(ref fallback) = result.fallback {
                 if let Some(acquired) = draw_ctx
                     .acquired_nodes()
-                    .get_node_of_type(Some(fallback), NodeType::Pattern)
+                    .get_node_of_type(fallback, NodeType::Pattern)
                 {
                     let a_node = acquired.get();
 


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