Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tiny-skia crashes on long texts within a Row that also contain other elements #2332

Open
2 tasks done
Hyphrio opened this issue Mar 16, 2024 · 0 comments
Open
2 tasks done
Labels
bug Something isn't working

Comments

@Hyphrio
Copy link

Hyphrio commented Mar 16, 2024

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)
@Hyphrio Hyphrio added the bug Something isn't working label Mar 16, 2024
@Hyphrio Hyphrio changed the title tiny-skia crashes on long texts tiny-skia crashes on long texts within a Row Mar 16, 2024
@Hyphrio Hyphrio changed the title tiny-skia crashes on long texts within a Row tiny-skia crashes on long texts within a Row that also contain other elements Mar 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant