From 5aef5c0edc474e7b94d736239e8001cbfbfe6aac Mon Sep 17 00:00:00 2001 From: Ademilson Ferreira Date: Wed, 17 Jun 2026 16:12:35 -0300 Subject: [PATCH] fix(dom): break frame-loop closure Rc cycle in auto_update cleanup --- packages/dom/src/auto_update.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/dom/src/auto_update.rs b/packages/dom/src/auto_update.rs index 45c88c9..d5884d8 100644 --- a/packages/dom/src/auto_update.rs +++ b/packages/dom/src/auto_update.rs @@ -401,6 +401,7 @@ pub fn auto_update( let frame_loop_frame_id = frame_id.clone(); let frame_loop_closure = Rc::new(RefCell::new(None)); let frame_loop_closure_clone = frame_loop_closure.clone(); + let frame_loop_closure_cleanup = frame_loop_closure.clone(); *frame_loop_closure_clone.borrow_mut() = Some(Closure::new({ let owned_reference = owned_reference.clone(); @@ -495,5 +496,7 @@ pub fn auto_update( if let Some(frame_id) = frame_id.take() { cancel_animation_frame(frame_id); } + + drop(frame_loop_closure_cleanup.borrow_mut().take()); }) }