tiny-skia crashes on long texts within a `Row` that also contain other elements
Hyphrio opened this issue · 0 comments
Hyphrio commented
Is there an existing issue for this?
- I have searched the existing issues.
Is this issue related to iced?
- My hardware is compatible and my graphics drivers are up-to-date.
What happened?
On long texts without a space, attempting to resize the window cause a crash.
Minimal reproduction:
use iced::{
widget::{button, column, horizontal_space, row, text},
Application, Settings, Size,
};
fn main() {
App::run(Settings {
window: iced::window::Settings {
min_size: Some(Size {
width: 500.0,
height: 600.0,
}),
..Default::default()
},
..Default::default()
})
.unwrap();
}
struct App {}
impl iced::Sandbox for App {
type Message = ();
fn new() -> Self {
Self {}
}
fn title(&self) -> String {
"Iced crash".to_owned()
}
fn update(&mut self, _message: Self::Message) {}
fn view(&self) -> iced::Element<'_, Self::Message> {
column![
row![
text("Autametvoluptatibusaccusamusaspernaturessedolorelaboriosamfacilis.Dictadictaeaeaminimaamaioresetanimi.Estinventoreteneturomnis."),
horizontal_space(),
button("abcdef")
].padding(8)
].padding(20)
.into()
}
}
What is the expected behavior?
Text either wraps or splits
Version
crates.io release
Operating System
Windows
Do you have any log output?
Finished dev [unoptimized + debuginfo] target(s) in 0.36s
Running `C:\Users\Hyphr\.cargo\target\debug\iced_ts_lt_crash.exe`
thread 'main' panicked at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_tiny_skia-0.12.1\src\backend.rs:158:17:
Quad with non-normal width!
stack backtrace:
0: std::panicking::begin_panic_handler
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\std\src\panicking.rs:645
1: core::panicking::panic_fmt
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library\core\src\panicking.rs:72
2: iced_tiny_skia::backend::Backend::draw_primitive
3: iced_tiny_skia::backend::Backend::draw<alloc::string::String>
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_tiny_skia-0.12.1\src\backend.rs:103
4: iced_tiny_skia::window::compositor::present<alloc::string::String>
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_tiny_skia-0.12.1\src\window\compositor.rs:202
5: iced_renderer::compositor::impl$0::present::closure$0<alloc::string::String>
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_renderer-0.12.1\src\compositor.rs:118
6: iced_graphics::renderer::Renderer<iced_tiny_skia::backend::Backend>::with_primitives<iced_tiny_skia::backend::Backend,enum2$<core::result::Result<tuple$<>,iced_graphics::compositor::SurfaceError> >,iced_renderer::compositor::impl$0::present::closure_env$0
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_graphics-0.12.1\src\renderer.rs:56
7: iced_renderer::compositor::impl$0::present<alloc::string::String>
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_renderer-0.12.1\src\compositor.rs:117
8: iced_winit::application::run_instance::async_fn$0<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor::Compositor> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_winit-0.12.2\src\application.rs:447
9: iced_winit::application::run::closure$1<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor::Compositor> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_winit-0.12.2\src\application.rs:228
10: iced_winit::application::run::closure$2<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor::Compositor> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_winit-0.12.2\src\application.rs:265
11: winit::platform_impl::platform::event_loop::impl$3::run_on_demand::closure$0<tuple$<>,iced_winit::application::run::closure_env$2<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor::Co
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:236
12: alloc::boxed::impl$48::call_mut<tuple$<enum2$<winit::event::Event<tuple$<> > > >,dyn$<core::ops::function::FnMut<tuple$<enum2$<winit::event::Event<tuple$<> > > >,assoc$<Output,tuple$<> > > >,alloc::alloc::Global>
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\alloc\src\boxed.rs:2022
13: winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure$0<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop\runner.rs:250
14: core::panic::unwind_safe::impl$23::call_once<tuple$<>,winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<tuple$<> > >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\panic\unwind_safe.rs:272
15: std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<tuple$<> > >,tuple$<> >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\std\src\panicking.rs:552
16: std::panicking::try::do_catch<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::thread_event_target_callback::closure_env$0<tuple$<> > >,isize>
17: std::panicking::try<tuple$<>,core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<tuple$<> > > >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\std\src\panicking.rs:516
18: std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<tuple$<> > >,tuple$<> >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\std\src\panic.rs:142
19: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple$<> >::catch_unwind<tuple$<>,tuple$<>,winit::platform_impl::platform::event_loop::runner::impl$3::call_event_handler::closure_env$0<tuple$<> > >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop\runner.rs:183
20: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple$<> >::call_event_handler<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop\runner.rs:246
21: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple$<> >::send_event<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop\runner.rs:224
22: winit::platform_impl::platform::event_loop::WindowData<tuple$<> >::send_event<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:112
23: winit::platform_impl::platform::event_loop::public_window_callback_inner::closure$4<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:1144
24: core::ops::function::FnOnce::call_once<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<tuple$<> >,tuple$<> >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\ops\function.rs:250
25: core::panic::unwind_safe::impl$23::call_once<tuple$<>,winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<tuple$<> > >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\panic\unwind_safe.rs:272
26: std::panicking::try::do_call<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<tuple$<> > >,tuple$<> >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\std\src\panicking.rs:552
27: std::panicking::try::do_catch<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::thread_event_target_callback::closure_env$0<tuple$<> > >,isize>
28: std::panicking::try<tuple$<>,core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<tuple$<> > > >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\std\src\panicking.rs:516
29: std::panic::catch_unwind<core::panic::unwind_safe::AssertUnwindSafe<winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<tuple$<> > >,tuple$<> >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\std\src\panic.rs:142
30: winit::platform_impl::platform::event_loop::runner::EventLoopRunner<tuple$<> >::catch_unwind<tuple$<>,tuple$<>,winit::platform_impl::platform::event_loop::public_window_callback_inner::closure_env$4<tuple$<> > >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop\runner.rs:183
31: winit::platform_impl::platform::event_loop::public_window_callback_inner<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:2285
32: winit::platform_impl::platform::event_loop::public_window_callback<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:983
33: DispatchMessageW
34: DispatchMessageW
35: GetClassLongW
36: KiUserCallbackDispatcher
37: NtUserMessageCall
38: GetDlgCtrlID
39: GetDlgCtrlID
40: Ordinal43
41: GetThemeEnumValue
42: CloseThemeData
43: CloseThemeData
44: GetDlgCtrlID
45: winit::platform_impl::platform::event_loop::public_window_callback_inner<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:2291
46: winit::platform_impl::platform::event_loop::public_window_callback<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:983
47: DispatchMessageW
48: DispatchMessageW
49: GetClassLongW
50: KiUserCallbackDispatcher
51: NtUserMessageCall
52: GetDlgCtrlID
53: GetDlgCtrlID
54: Ordinal43
55: GetThemeEnumValue
56: CloseThemeData
57: CloseThemeData
58: GetDlgCtrlID
59: winit::platform_impl::platform::event_loop::public_window_callback_inner<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:2291
60: winit::platform_impl::platform::event_loop::public_window_callback<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:983
61: DispatchMessageW
62: DispatchMessageW
63: winit::platform_impl::platform::event_loop::EventLoop<tuple$<> >::dispatch_peeked_messages<tuple$<> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:449
64: winit::platform_impl::platform::event_loop::EventLoop<tuple$<> >::run_on_demand<tuple$<>,iced_winit::application::run::closure_env$2<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor:
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:247
65: winit::platform_impl::platform::event_loop::EventLoop<tuple$<> >::run<tuple$<>,iced_winit::application::run::closure_env$2<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor::Composito
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\platform_impl\windows\event_loop.rs:218
66: winit::event_loop::EventLoop<tuple$<> >::run<tuple$<>,iced_winit::application::run::closure_env$2<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor::Compositor> > >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\winit-0.29.15\src\event_loop.rs:249
67: iced_winit::application::run<iced::application::Instance<iced_ts_lt_crash::App>,iced_futures::backend::null::Executor,enum2$<iced_renderer::compositor::Compositor> >
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced_winit-0.12.2\src\application.rs:253
68: iced::application::Application::run<iced_ts_lt_crash::App>
at C:\Users\Hyphr\.cargo\registry\src\index.crates.io-6f17d22bba15001f\iced-0.12.1\src\application.rs:208
69: iced_ts_lt_crash::main
at .\src\main.rs:7
70: core::ops::function::FnOnce::call_once<void (*)(),tuple$<> >
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\ops\function.rs:250
71: core::hint::black_box
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce\library\core\src\hint.rs:286
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: process didn't exit successfully: `C:\Users\Hyphr\.cargo\target\debug\iced_ts_lt_crash.exe` (exit code: 101)