Browse Source

expression-list-model: Do not use one weak reference per item

Use strong references instead. Otherwise dropping the item watches for
each member of a big room takes too long.
fractal-6
Kévin Commaille 2 years ago
parent
commit
94f28cd980
No known key found for this signature in database
GPG Key ID: 29A48C1F03620416
  1. 4
      src/utils/expression_list_model.rs

4
src/utils/expression_list_model.rs

@ -75,7 +75,7 @@ impl ExpressionListModel {
let added = if let Some(model) = model {
let items_changed_handler = model.connect_items_changed(
clone!(@weak self as obj => move |_, pos, removed, added| {
clone!(@strong self as obj => move |_, pos, removed, added| {
obj.watch_items(pos, removed, added);
obj.items_changed(pos, removed, added);
}),
@ -135,7 +135,7 @@ impl ExpressionListModel {
for expression in &expressions {
item_watches.push(expression.watch(
Some(&item),
clone!(@weak self as obj, @weak item => move || {
clone!(@strong self as obj, @weak item => move || {
obj.item_expr_changed(&item);
}),
));

Loading…
Cancel
Save