fix merged changes

This commit is contained in:
Evan Almloff committed 2023-11-27 16:12:48 -06:00
1 parent 355cd9b19e
commit b3c7ebfdba
1 file changed
+15 -13
+15 -13
View File
@@ -351,20 +351,22 @@ impl<'src> ScopeState {
let mut listeners = self.attributes_to_drop_before_render.borrow_mut(); let mut listeners = self.attributes_to_drop_before_render.borrow_mut();
for attr in element.dynamic_attrs { for attr in element.dynamic_attrs {
match attr.value { attr.ty.for_each(|attr| {
// We need to drop listeners before the next render because they may borrow data from the borrowed props which will be dropped match attr.value {
AttributeValue::Listener(_) => { // We need to drop listeners before the next render because they may borrow data from the borrowed props which will be dropped
let unbounded = unsafe { std::mem::transmute(attr as *const Attribute) }; AttributeValue::Listener(_) => {
listeners.push(unbounded); let unbounded = unsafe { std::mem::transmute(attr as *const Attribute) };
} listeners.push(unbounded);
// We need to drop any values manually to make sure that their drop implementation is called before the next render }
AttributeValue::Any(_) => { // We need to drop any values manually to make sure that their drop implementation is called before the next render
let unbounded = unsafe { std::mem::transmute(attr as *const Attribute) }; AttributeValue::Any(_) => {
self.previous_frame().add_attribute_to_drop(unbounded); let unbounded = unsafe { std::mem::transmute(attr as *const Attribute) };
} self.previous_frame().add_attribute_to_drop(unbounded);
}
_ => (), _ => (),
} }
})
} }
let mut props = self.borrowed_props.borrow_mut(); let mut props = self.borrowed_props.borrow_mut();