aboutsummaryrefslogtreecommitdiffstats
path: root/tools/net/ynl/pyynl/cli.py
diff options
context:
space:
mode:
authorAlice Ryhl <[email protected]>2024-11-20 11:46:05 +0000
committerMiguel Ojeda <[email protected]>2025-01-13 22:46:07 +0000
commitc27e705cb2b71769dbb4bb1bee1920d2fa01a597 (patch)
tree907496653ef253f975baf33bad396b91fdeca44c /tools/net/ynl/pyynl/cli.py
parentrust: kernel: reorder `ForeignOwnable` items (diff)
downloadkernel-c27e705cb2b71769dbb4bb1bee1920d2fa01a597.tar.gz
kernel-c27e705cb2b71769dbb4bb1bee1920d2fa01a597.zip
rust: kernel: add improved version of `ForeignOwnable::borrow_mut`
Previously, the `ForeignOwnable` trait had a method called `borrow_mut` that was intended to provide mutable access to the inner value. However, the method accidentally made it possible to change the address of the object being modified, which usually isn't what we want. (And when we want that, it can be done by calling `from_foreign` and `into_foreign`, like how the old `borrow_mut` was implemented.) In this patch, we introduce an alternate definition of `borrow_mut` that solves the previous problem. Conceptually, given a pointer type `P` that implements `ForeignOwnable`, the `borrow_mut` method gives you the same kind of access as an `&mut P` would, except that it does not let you change the pointer `P` itself. This is analogous to how the existing `borrow` method provides the same kind of access to the inner value as an `&P`. Note that for types like `Arc`, having an `&mut Arc<T>` only gives you immutable access to the inner `T`. This is because mutable references assume exclusive access, but there might be other handles to the same reference counted value, so the access isn't exclusive. The `Arc` type implements this by making `borrow_mut` return the same type as `borrow`. Signed-off-by: Alice Ryhl <[email protected]> Reviewed-by: Boqun Feng <[email protected]> Reviewed-by: Benno Lossin <[email protected]> Reviewed-by: Martin Rodriguez Reboredo <[email protected]> Reviewed-by: Andreas Hindborg <[email protected]> Signed-off-by: Tamir Duberstein <[email protected]> Acked-by: Danilo Krummrich <[email protected]> Link: https://lore.kernel.org/r/[email protected] [ Updated to `crate::ffi::`. Reworded title slightly. - Miguel ] Signed-off-by: Miguel Ojeda <[email protected]>
Diffstat (limited to 'tools/net/ynl/pyynl/cli.py')
0 files changed, 0 insertions, 0 deletions