mirror of
https://github.com/slint-ui/slint.git
synced 2025-09-29 13:24:48 +00:00
Fix panic about multiple mutable borrows with the software renderer
When using repeaters - like in the slide puzzle - and during renderer a component gets deleted, we call free_graphics_resources and try to free the dirty rectangle list in the partial renderer cache. At that point the cache is already mutably borrowed, which causes a panic. As remedy, apply the mutable borrow more fine grained and not right when calling render().
This commit is contained in:
parent
100eb305a3
commit
2d2eb70b51
4 changed files with 26 additions and 20 deletions
|
@ -131,7 +131,7 @@ mod the_backend {
|
|||
items: &mut dyn Iterator<Item = Pin<i_slint_core::items::ItemRef<'a>>>,
|
||||
) {
|
||||
super::LINE_RENDERER.with(|renderer| {
|
||||
renderer.borrow_mut().free_graphics_resources(items);
|
||||
renderer.borrow().free_graphics_resources(items);
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -346,7 +346,7 @@ mod the_backend {
|
|||
};
|
||||
|
||||
LINE_RENDERER.with(|renderer| {
|
||||
renderer.borrow_mut().render(
|
||||
renderer.borrow().render(
|
||||
runtime_window,
|
||||
window.initial_dirty_region_for_next_frame.take(),
|
||||
buffer_provider,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue