From b1fba81e08860d4747284e2e44b5b8cf7ca93fe2 Mon Sep 17 00:00:00 2001 From: galister <22305755+galister@users.noreply.github.com> Date: Fri, 26 Dec 2025 00:23:45 +0900 Subject: [PATCH] when is maybeuninit not a bad idea? --- wlx-overlay-s/src/backend/wayvr/mod.rs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/wlx-overlay-s/src/backend/wayvr/mod.rs b/wlx-overlay-s/src/backend/wayvr/mod.rs index ae47f7b..19195ec 100644 --- a/wlx-overlay-s/src/backend/wayvr/mod.rs +++ b/wlx-overlay-s/src/backend/wayvr/mod.rs @@ -572,14 +572,11 @@ pub struct SurfaceBufWithImage { impl SurfaceBufWithImage { #[allow(invalid_value)] fn apply_to_surface(self, surface_data: &SurfaceData) { - let container = surface_data.data_map.get_or_insert(|| unsafe { - SurfaceBufWithImageContainer { - // safe because we're replacing right after - inner: RefCell::new(MaybeUninit::uninit().assume_init()), - } - }); - - container.inner.replace(self); + if let Some(container) = surface_data.data_map.get::() { + container.inner.replace(self); + } else { + surface_data.data_map.insert_if_missing(|| self); + } } pub fn get_from_surface(surface_data: &SurfaceData) -> Option {