Avoid monomorphization of retain in apply_modify.
This commit is contained in:
parent
1b667ec61f
commit
5fd8dc84f2
|
@ -365,16 +365,21 @@ impl<T: VarValue> VarData<T> {
|
||||||
let meta = parking_lot::RwLockWriteGuard::downgrade(meta);
|
let meta = parking_lot::RwLockWriteGuard::downgrade(meta);
|
||||||
|
|
||||||
let args = AnyVarHookArgs::new(&meta.value, update, &tags);
|
let args = AnyVarHookArgs::new(&meta.value, update, &tags);
|
||||||
hooks.retain(|h| h.call(&args));
|
call_hooks(&mut hooks, args);
|
||||||
|
|
||||||
drop(meta);
|
drop(meta);
|
||||||
|
|
||||||
let mut meta = self.0.write();
|
let mut meta = self.0.write();
|
||||||
hooks.append(&mut meta.hooks);
|
hooks.append(&mut meta.hooks);
|
||||||
meta.hooks = hooks;
|
meta.hooks = hooks;
|
||||||
|
} else {
|
||||||
|
meta.hooks = hooks;
|
||||||
}
|
}
|
||||||
|
|
||||||
VARS.wake_app();
|
VARS.wake_app();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn call_hooks(hooks: &mut Vec<VarHook>, args: AnyVarHookArgs) {
|
||||||
|
hooks.retain(|h| h.call(&args));
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue