Open
Description
The code below panics.
Latest version : tiny-skia = "0.6.6"
The panic come from the a debug_assert!
in src/scan/path.rs
use tiny_skia::*;
fn main() {
// special value
let v = -6.40969;
let clip_path = {
let mut pb = PathBuilder::new();
pb.push_circle(v, v, v);
// special values
pb.push_circle(823811.0, v, 824467.0);
pb.finish().unwrap()
};
// special values
let clip_path = clip_path.transform(Transform::from_row(v, 824060.0, 0.0, 0.0, 0.0, 0.0)).unwrap();
let mut clip_mask = ClipMask::new();
// panic here
clip_mask.set_path(500, 500, &clip_path, FillRule::EvenOdd, true);
}
Stacktrace :
thread 'main' panicked at 'assertion failed: edges[curr_idx].last_y >= curr_y as i32', ~/.cargo/registry/src/github.com-1ecc6299db9ec823/tiny-skia-0.6.6/src/scan/path.rs:178:13
stack backtrace:
0: rust_begin_unwind
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/std/src/panicking.rs:584:5
1: core::panicking::panic_fmt
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panicking.rs:143:14
2: core::panicking::panic
at /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e/library/core/src/panicking.rs:48:5
3: tiny_skia::scan::path::walk_edges
at ~/.cargo/registry/src/github.com-1ecc6299db9ec823/tiny-skia-0.6.6/src/scan/path.rs:178:13
4: tiny_skia::scan::path::fill_path_impl
at ~/.cargo/registry/src/github.com-1ecc6299db9ec823/tiny-skia-0.6.6/src/scan/path.rs:155:5
5: tiny_skia::scan::path_aa::fill_path_impl
at ~/.cargo/registry/src/github.com-1ecc6299db9ec823/tiny-skia-0.6.6/src/scan/path_aa.rs:106:5
6: tiny_skia::scan::path_aa::fill_path
at ~/.cargo/registry/src/github.com-1ecc6299db9ec823/tiny-skia-0.6.6/src/scan/path_aa.rs:62:5
7: tiny_skia::clip::ClipMask::set_path
at ~/.cargo/registry/src/github.com-1ecc6299db9ec823/tiny-skia-0.6.6/src/clip.rs:94:13