mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-03-22 07:27:12 +08:00
rust: alloc: update VecExt to take allocation flags
We also rename the methods by removing the `try_` prefix since the names are available due to our usage of the `no_global_oom_handling` config when building the `alloc` crate. Reviewed-by: Boqun Feng <boqun.feng@gmail.com> Signed-off-by: Wedson Almeida Filho <walmeida@microsoft.com> Reviewed-by: Benno Lossin <benno.lossin@proton.me> Link: https://lore.kernel.org/r/20240328013603.206764-8-wedsonaf@gmail.com Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
This commit is contained in:
committed by
Miguel Ojeda
parent
08d3f54928
commit
5ab560ce12
@@ -2,7 +2,7 @@
|
||||
|
||||
//! String representations.
|
||||
|
||||
use crate::alloc::vec_ext::VecExt;
|
||||
use crate::alloc::{flags::*, vec_ext::VecExt};
|
||||
use alloc::alloc::AllocError;
|
||||
use alloc::vec::Vec;
|
||||
use core::fmt::{self, Write};
|
||||
@@ -807,7 +807,7 @@ impl CString {
|
||||
let size = f.bytes_written();
|
||||
|
||||
// Allocate a vector with the required number of bytes, and write to it.
|
||||
let mut buf = Vec::try_with_capacity(size)?;
|
||||
let mut buf = <Vec<_> as VecExt<_>>::with_capacity(size, GFP_KERNEL)?;
|
||||
// SAFETY: The buffer stored in `buf` is at least of size `size` and is valid for writes.
|
||||
let mut f = unsafe { Formatter::from_buffer(buf.as_mut_ptr(), size) };
|
||||
f.write_fmt(args)?;
|
||||
@@ -856,7 +856,7 @@ impl<'a> TryFrom<&'a CStr> for CString {
|
||||
fn try_from(cstr: &'a CStr) -> Result<CString, AllocError> {
|
||||
let mut buf = Vec::new();
|
||||
|
||||
buf.try_extend_from_slice(cstr.as_bytes_with_nul())
|
||||
<Vec<_> as VecExt<_>>::extend_from_slice(&mut buf, cstr.as_bytes_with_nul(), GFP_KERNEL)
|
||||
.map_err(|_| AllocError)?;
|
||||
|
||||
// INVARIANT: The `CStr` and `CString` types have the same invariants for
|
||||
|
||||
Reference in New Issue
Block a user