fix merged changes
This commit is contained in:
1 parent
355cd9b19e
commit
b3c7ebfdba
1 file changed
+15
-13
+15
-13
@@ -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();
|
||||||
|
|||||||
Reference in new issue
Block a user