[librsvg: 26/90] with_discrete_layer(): Restore the state completely if a filter returns an error



commit 8dce1acfc1a449844d86b4ad3ce523c4b541792b
Author: Federico Mena Quintero <federico gnome org>
Date:   Wed Mar 13 16:11:54 2019 -0600

    with_discrete_layer(): Restore the state completely if a filter returns an error

 rsvg_internals/src/drawing_ctx.rs | 1 +
 1 file changed, 1 insertion(+)
---
diff --git a/rsvg_internals/src/drawing_ctx.rs b/rsvg_internals/src/drawing_ctx.rs
index f488c87f..ade1012c 100644
--- a/rsvg_internals/src/drawing_ctx.rs
+++ b/rsvg_internals/src/drawing_ctx.rs
@@ -467,6 +467,7 @@ impl DrawingCtx {
                 let filter_result_surface = if let Some(filter_uri) = filter {
                     self.run_filter(filter_uri, node, values, &surface, self.bbox)
                         .map_err(|e| {
+                            self.cr = self.cr_stack.pop().unwrap();
                             self.cr.restore();
                             e
                         })?


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