diff --git a/tiny_skia/src/vector.rs b/tiny_skia/src/vector.rs index d673df41..827f2e99 100644 --- a/tiny_skia/src/vector.rs +++ b/tiny_skia/src/vector.rs @@ -7,7 +7,8 @@ use tiny_skia::Transform; use std::cell::RefCell; use std::collections::hash_map; -use std::{fs, panic}; +use std::fs; +use std::panic; use std::sync::Arc; #[derive(Debug)] @@ -170,17 +171,12 @@ impl Cache { // SVG rendering can panic on malformed or complex vectors. // We catch panics to prevent crashes and continue gracefully. - let render_result = - panic::catch_unwind(panic::AssertUnwindSafe(|| { - resvg::render(tree, transform, &mut image.as_mut()); - })); + let render = panic::catch_unwind(panic::AssertUnwindSafe(|| { + resvg::render(tree, transform, &mut image.as_mut()); + })); - if render_result.is_err() { - log::warn!( - "SVG rendering panicked for handle ID: {}", - handle.id() - ); - return None; + if let Err(error) = render { + log::warn!("SVG rendering for {handle:?} panicked: {error:?}"); } if let Some([r, g, b, _]) = key.color { diff --git a/wgpu/src/image/vector.rs b/wgpu/src/image/vector.rs index 882fb427..0704a966 100644 --- a/wgpu/src/image/vector.rs +++ b/wgpu/src/image/vector.rs @@ -5,7 +5,8 @@ use crate::image::atlas::{self, Atlas}; use resvg::tiny_skia; use resvg::usvg; use rustc_hash::{FxHashMap, FxHashSet}; -use std::{fs, panic}; +use std::fs; +use std::panic; use std::sync::Arc; /// Entry in cache corresponding to an svg handle @@ -156,17 +157,15 @@ impl Cache { // SVG rendering can panic on malformed or complex vectors. // We catch panics to prevent crashes and continue gracefully. - let render_result = + let render = panic::catch_unwind(panic::AssertUnwindSafe(|| { resvg::render(tree, transform, &mut img.as_mut()); })); - if render_result.is_err() { + if let Err(error) = render { log::warn!( - "SVG rendering panicked for handle ID: {}", - handle.id() + "SVG rendering for {handle:?} panicked: {error:?}" ); - return None; } let mut rgba = img.take();