[librsvg: 36/45] Return Result<Resolved> from resolve(), not Result<Option<Resolved>>
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [librsvg: 36/45] Return Result<Resolved> from resolve(), not Result<Option<Resolved>>
- Date: Tue, 1 Oct 2019 15:09:58 +0000 (UTC)
commit 07f72ad7fda6d5985e2206451c9b5c175075fdb0
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Sep 30 15:13:36 2019 -0500
Return Result<Resolved> from resolve(), not Result<Option<Resolved>>
Now that gradients check the incoming bounding box at a later stage,
they can always return a valid resolved gradient.
rsvg_internals/src/gradient.rs | 4 ++--
rsvg_internals/src/paint_server.rs | 6 ++----
rsvg_internals/src/pattern.rs | 8 +++-----
3 files changed, 7 insertions(+), 11 deletions(-)
---
diff --git a/rsvg_internals/src/gradient.rs b/rsvg_internals/src/gradient.rs
index d66974cb..bb9f1f42 100644
--- a/rsvg_internals/src/gradient.rs
+++ b/rsvg_internals/src/gradient.rs
@@ -583,7 +583,7 @@ impl PaintSource for NodeGradient {
&self,
node: &RsvgNode,
draw_ctx: &mut DrawingCtx,
- ) -> Result<Option<Self::Resolved>, PaintServerError> {
+ ) -> Result<Self::Resolved, PaintServerError> {
let Unresolved { mut gradient, mut fallback } = self.get_unresolved(node);
let mut stack = NodeStack::new();
@@ -612,7 +612,7 @@ impl PaintSource for NodeGradient {
}
}
- Ok(Some(gradient.to_resolved()))
+ Ok(gradient.to_resolved())
}
}
diff --git a/rsvg_internals/src/paint_server.rs b/rsvg_internals/src/paint_server.rs
index 04295fb5..e31deeec 100644
--- a/rsvg_internals/src/paint_server.rs
+++ b/rsvg_internals/src/paint_server.rs
@@ -61,7 +61,7 @@ pub trait PaintSource {
&self,
node: &RsvgNode,
draw_ctx: &mut DrawingCtx,
- ) -> Result<Option<Self::Resolved>, PaintServerError>;
+ ) -> Result<Self::Resolved, PaintServerError>;
fn resolve_fallbacks_and_set_pattern(
&self,
@@ -71,14 +71,12 @@ pub trait PaintSource {
bbox: &BoundingBox,
) -> Result<bool, RenderingError> {
match self.resolve(&node, draw_ctx) {
- Ok(Some(resolved)) => {
+ Ok(resolved) => {
let cascaded = CascadedValues::new_from_node(node);
let values = cascaded.get();
resolved.set_pattern_on_draw_context(values, draw_ctx, opacity, bbox)
}
- Ok(None) => Ok(false),
-
Err(PaintServerError::CircularReference(_)) => {
// FIXME: add a fragment or node id to this:
rsvg_log!("circular reference in paint server {}", node);
diff --git a/rsvg_internals/src/pattern.rs b/rsvg_internals/src/pattern.rs
index 98f622be..95fce0a5 100644
--- a/rsvg_internals/src/pattern.rs
+++ b/rsvg_internals/src/pattern.rs
@@ -144,7 +144,7 @@ impl PaintSource for NodePattern {
&self,
node: &RsvgNode,
draw_ctx: &mut DrawingCtx,
- ) -> Result<Option<Self::Resolved>, PaintServerError> {
+ ) -> Result<Self::Resolved, PaintServerError> {
*self.node.borrow_mut() = Some(node.downgrade());
let mut result = node.borrow().get_impl::<NodePattern>().clone();
@@ -159,9 +159,7 @@ impl PaintSource for NodePattern {
let a_node = acquired.get();
if stack.contains(a_node) {
- return Err(PaintServerError::CircularReference(
- fallback.clone(),
- ));
+ return Err(PaintServerError::CircularReference(fallback.clone()));
}
let node_data = a_node.borrow();
@@ -180,7 +178,7 @@ impl PaintSource for NodePattern {
}
}
- Ok(Some(result))
+ Ok(result)
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]