trust + fix redraw bug

This commit is contained in:
iris committed 2025-12-17 01:16:28 -05:00
1 parent 70ac0fbcb2
commit 7e6369029f
7 files changed
+38 -32

No files matched your search

+6 -5
View File
@@ -1,6 +1,9 @@
use std::ops::{Index, IndexMut};
use crate::render::{MaskIdx, Primitive, PrimitiveHandle, PrimitiveInst, Primitives};
use crate::{
render::{MaskIdx, Primitive, PrimitiveHandle, PrimitiveInst, Primitives},
util::to_mut,
};
pub type LayerId = usize;
@@ -176,8 +179,7 @@ impl<'a, T> Iterator for LayerIteratorMut<'a, T> {
fn next(&mut self) -> Option<Self::Item> {
let i = self.inner.next()?;
// SAFETY: requires index iterator to work properly
#[allow(mutable_transmutes)]
let layer = unsafe { std::mem::transmute::<&T, &mut T>(&self.inner.vec[i].data) };
let layer = unsafe { to_mut(&self.inner.vec[i].data) };
Some((i, layer))
}
}
@@ -186,8 +188,7 @@ impl<'a, T> DoubleEndedIterator for LayerIteratorMut<'a, T> {
fn next_back(&mut self) -> Option<Self::Item> {
let i = self.inner.next_back()?;
// SAFETY: requires index iterator to work properly
#[allow(mutable_transmutes)]
let layer = unsafe { std::mem::transmute::<&T, &mut T>(&self.inner.vec[i].data) };
let layer = unsafe { to_mut(&self.inner.vec[i].data) };
Some((i, layer))
}
}