fix: save listeners, borrowed props, and pull back props

This commit is contained in:
Jonathan Kelley committed 2022-12-16 19:54:33 -08:00
1 parent b6a8391e07
commit 4d73ffa361
7 files changed
+237 -289

No files matched your search

+5 -3
View File
@@ -32,8 +32,9 @@ impl VirtualDom {
parent,
id,
height,
props: Some(props),
name,
props: Some(props),
tasks: self.scheduler.clone(),
placeholder: Default::default(),
node_arena_1: BumpFrame::new(0),
node_arena_2: BumpFrame::new(0),
@@ -43,7 +44,8 @@ impl VirtualDom {
hook_list: Default::default(),
hook_idx: Default::default(),
shared_contexts: Default::default(),
tasks: self.scheduler.clone(),
borrowed_props: Default::default(),
listeners: Default::default(),
}))
}
@@ -75,7 +77,7 @@ impl VirtualDom {
scope.hook_idx.set(0);
// safety: due to how we traverse the tree, we know that the scope is not currently aliased
let props = scope.props.as_ref().unwrap().as_ref();
let props: &dyn AnyProps = scope.props.as_ref().unwrap().as_ref();
let props: &dyn AnyProps = mem::transmute(props);
props.render(scope).extend_lifetime()
};