From e880acca667ddfdcff915f71beea057d7c779704 Mon Sep 17 00:00:00 2001 From: shadow cat Date: Wed, 17 Sep 2025 12:49:41 -0400 Subject: [PATCH] clear textures in remove so not needed outside --- src/layout/painter.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/layout/painter.rs b/src/layout/painter.rs index 9e568bb..1895860 100644 --- a/src/layout/painter.rs +++ b/src/layout/painter.rs @@ -77,9 +77,6 @@ impl<'a> PainterCtx<'a> { return; }; - drop(active.textures); - self.textures.free(); - self.primitives.set_pos(active.span.start); self.draw_inner( id, @@ -135,8 +132,6 @@ impl<'a> PainterCtx<'a> { let active = self.remove(id).unwrap(); old_children = active.children; resize = active.resize; - drop(active.textures); - self.textures.free(); } let mut painter = Painter { @@ -181,12 +176,15 @@ impl<'a> PainterCtx<'a> { self.active.add(id, instance, self.widgets); } + /// NOTE: instance textures are cleared and self.textures freed fn remove(&mut self, id: &Id) -> Option { - let inst = self.active.remove(id); - if let Some(inst) = &inst { + let mut inst = self.active.remove(id); + if let Some(inst) = &mut inst { for h in &inst.primitives { self.primitives.free(h); } + inst.textures.clear(); + self.textures.free(); } inst }