mirror of
https://github.com/rust-lang/rust.git
synced 2026-04-28 03:07:24 +03:00
std::vec: Add UB check in from_parts_in
Signed-off-by: xizheyin <xizheyin@smail.nju.edu.cn>
This commit is contained in:
@@ -1179,6 +1179,11 @@ pub unsafe fn from_raw_parts_in(ptr: *mut T, length: usize, capacity: usize, all
|
||||
#[unstable(feature = "allocator_api", reason = "new API", issue = "32838")]
|
||||
// #[unstable(feature = "box_vec_non_null", issue = "130364")]
|
||||
pub unsafe fn from_parts_in(ptr: NonNull<T>, length: usize, capacity: usize, alloc: A) -> Self {
|
||||
ub_checks::assert_unsafe_precondition!(
|
||||
check_library_ub,
|
||||
"Vec::from_parts_in requires that length <= capacity",
|
||||
(length: usize = length, capacity: usize = capacity) => length <= capacity
|
||||
);
|
||||
unsafe { Vec { buf: RawVec::from_nonnull_in(ptr, capacity, alloc), len: length } }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user