Lines Matching refs:new_size
36 fn __rust_realloc(ptr: *mut u8, old_size: usize, align: usize, new_size: usize) -> *mut u8;
137 pub unsafe fn realloc(ptr: *mut u8, layout: Layout, new_size: usize) -> *mut u8 {
138 unsafe { __rust_realloc(ptr, layout.size(), layout.align(), new_size) }
207 // SAFETY: `new_size` is non-zero as `old_size` is greater than or equal to `new_size`
210 let new_size = new_layout.size();
212 // `realloc` probably checks for `new_size >= old_layout.size()` or something similar.
213 intrinsics::assume(new_size >= old_layout.size());
215 let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
218 raw_ptr.add(old_size).write_bytes(0, new_size - old_size);
220 Ok(NonNull::slice_from_raw_parts(ptr, new_size))
301 // SAFETY: `new_size` is non-zero. Other conditions must be upheld by the caller
302 new_size if old_layout.align() == new_layout.align() => unsafe {
303 // `realloc` probably checks for `new_size <= old_layout.size()` or something similar.
304 intrinsics::assume(new_size <= old_layout.size());
306 let raw_ptr = realloc(ptr.as_ptr(), old_layout, new_size);
308 Ok(NonNull::slice_from_raw_parts(ptr, new_size))
311 // SAFETY: because `new_size` must be smaller than or equal to `old_layout.size()`,
312 // both the old and new memory allocation are valid for reads and writes for `new_size`
316 new_size => unsafe {
318 ptr::copy_nonoverlapping(ptr.as_ptr(), new_ptr.as_mut_ptr(), new_size);