@@ -19,7 +19,6 @@ cfg_if::cfg_if! {
19 pub(crate) fn clear_active_listeners(&mut self) {}
19 pub(crate) fn clear_active_listeners(&mut self) {}
23 use crate::{
22 use crate::{
24 node::{ElementNode, ListenerCallback, NodeKind},
23 node::{ElementNode, ListenerCallback, NodeKind},
25 vdom::VdomWeak,
24 vdom::VdomWeak,
@@ -99,18 +98,14 @@ cfg_if::cfg_if! {
101 pub(crate) fn remove_subtree(&mut self, node: &Node) {
100 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);
106− while let Some(node) = stack.pop() {
107− match node.kind {
101+ match node.kind {
108− NodeKind::Cached(_) | NodeKind::Text(_) => continue,
102+ NodeKind::Cached(_) | NodeKind::Text(_) => return,
109− NodeKind::Element(ElementNode {listeners, children, ..}) => {
103+ NodeKind::Element(&ElementNode {listeners, children, ..}) => {
110− for l in listeners {
104+ for l in listeners {
111− self.remove(l);
105+ self.remove(l);
113− stack.extend(children);
107+ for child in children {
108+ self.remove_subtree(child)