@@ -19,7 +19,6 @@ cfg_if::cfg_if! {
1919 pub(crate) fn clear_active_listeners(&mut self) {}
2020 }
2121 } else {
22− use bumpalo::Bump;
2322 use crate::{
2423 node::{ElementNode, ListenerCallback, NodeKind},
2524 vdom::VdomWeak,
@@ -99,18 +98,14 @@ cfg_if::cfg_if! {
9998 }
10099
101100 pub(crate) fn remove_subtree(&mut self, node: &Node) {
102− let bump = Bump::new();
103− let mut stack = bumpalo::collections::Vec::with_capacity_in(64, &bump);
104− stack.push(node);
105−
106− while let Some(node) = stack.pop() {
107− match node.kind {
108− NodeKind::Cached(_) | NodeKind::Text(_) => continue,
109− NodeKind::Element(ElementNode {listeners, children, ..}) => {
110− for l in listeners {
111− self.remove(l);
112− }
113− stack.extend(children);
101+ match node.kind {
102+ NodeKind::Cached(_) | NodeKind::Text(_) => return,
103+ NodeKind::Element(&ElementNode {listeners, children, ..}) => {
104+ for l in listeners {
105+ self.remove(l);
106+ }
107+ for child in children {
108+ self.remove_subtree(child)
114109 }
115110 }
116111 }