diff options
author | Obei Sideg <linux@obei.io> | 2024-01-29 06:45:27 +0000 |
---|---|---|
committer | Miguel Ojeda <ojeda@kernel.org> | 2024-02-25 19:17:31 +0100 |
commit | 5bc818419a551ab1fcdbff3c5d8b6043527d90dd (patch) | |
tree | 2b352fb034e0766029406e39072789197f54f0f7 /drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | |
parent | e3c3d34507c7a146de1c5ce01bd0b2c0018b2609 (diff) |
rust: types: add `try_from_foreign()` method
Currently `ForeignOwnable::from_foreign()` only works for non-null
pointers for the existing `impl`s (e.g. `Box`, `Arc`). In turn, this
means callers may write code like:
```rust
// `p` is a pointer that may be null.
if p.is_null() {
None
} else {
unsafe { Some(Self::from_foreign(ptr)) }
}
```
Add a `try_from_foreign()` method to the trait with a default
implementation that returns `None` if `ptr` is null, otherwise
`Some(from_foreign(ptr))`, so that it can be used by callers instead.
Link: https://github.com/Rust-for-Linux/linux/issues/1057
Signed-off-by: Obei Sideg <linux@obei.io>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Trevor Gross <tmgross@umich.edu>
Link: https://lore.kernel.org/r/0100018d53f737f8-80c1fe97-0019-40d7-ab69-b1b192785cd7-000000@email.amazonses.com
[ Fixed intra-doc links, improved `SAFETY` comment and reworded commit. ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c')
0 files changed, 0 insertions, 0 deletions