mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Rollup merge of #100821 - WaffleLapkin:ptr_add_docs, r=scottmcm
Make some docs nicer wrt pointer offsets This PR replaces `pointer::offset` with `pointer::add` and similarly `.cast().wrapping_add().cast()` with `.wrapping_byte_add()` **in docs**. r? ``````@scottmcm`````` _split off from #100746_
This commit is contained in:
commit
fd403f5d17
@ -436,9 +436,9 @@ impl CString {
|
||||
///
|
||||
/// unsafe {
|
||||
/// assert_eq!(b'f', *ptr as u8);
|
||||
/// assert_eq!(b'o', *ptr.offset(1) as u8);
|
||||
/// assert_eq!(b'o', *ptr.offset(2) as u8);
|
||||
/// assert_eq!(b'\0', *ptr.offset(3) as u8);
|
||||
/// assert_eq!(b'o', *ptr.add(1) as u8);
|
||||
/// assert_eq!(b'o', *ptr.add(2) as u8);
|
||||
/// assert_eq!(b'\0', *ptr.add(3) as u8);
|
||||
///
|
||||
/// // retake pointer to free memory
|
||||
/// let _ = CString::from_raw(ptr);
|
||||
|
@ -542,8 +542,8 @@ impl<T> Vec<T> {
|
||||
///
|
||||
/// unsafe {
|
||||
/// // Overwrite memory with 4, 5, 6
|
||||
/// for i in 0..len as isize {
|
||||
/// ptr::write(p.offset(i), 4 + i);
|
||||
/// for i in 0..len {
|
||||
/// ptr::write(p.add(i), 4 + i);
|
||||
/// }
|
||||
///
|
||||
/// // Put everything back together into a Vec
|
||||
@ -702,8 +702,8 @@ impl<T, A: Allocator> Vec<T, A> {
|
||||
///
|
||||
/// unsafe {
|
||||
/// // Overwrite memory with 4, 5, 6
|
||||
/// for i in 0..len as isize {
|
||||
/// ptr::write(p.offset(i), 4 + i);
|
||||
/// for i in 0..len {
|
||||
/// ptr::write(p.add(i), 4 + i);
|
||||
/// }
|
||||
///
|
||||
/// // Put everything back together into a Vec
|
||||
|
@ -2209,9 +2209,9 @@ pub(crate) fn is_nonoverlapping<T>(src: *const T, dst: *const T, count: usize) -
|
||||
/// dst.reserve(src_len);
|
||||
///
|
||||
/// unsafe {
|
||||
/// // The call to offset is always safe because `Vec` will never
|
||||
/// // The call to add is always safe because `Vec` will never
|
||||
/// // allocate more than `isize::MAX` bytes.
|
||||
/// let dst_ptr = dst.as_mut_ptr().offset(dst_len as isize);
|
||||
/// let dst_ptr = dst.as_mut_ptr().add(dst_len);
|
||||
/// let src_ptr = src.as_ptr();
|
||||
///
|
||||
/// // Truncate `src` without dropping its contents. We do this first,
|
||||
|
@ -1554,8 +1554,8 @@ impl<T> AtomicPtr<T> {
|
||||
/// Offsets the pointer's address by adding `val` *bytes*, returning the
|
||||
/// previous pointer.
|
||||
///
|
||||
/// This is equivalent to using [`wrapping_add`] and [`cast`] to atomically
|
||||
/// perform `ptr = ptr.cast::<u8>().wrapping_add(val).cast::<T>()`.
|
||||
/// This is equivalent to using [`wrapping_byte_add`] to atomically
|
||||
/// perform `ptr = ptr.wrapping_byte_add(val)`.
|
||||
///
|
||||
/// `fetch_byte_add` takes an [`Ordering`] argument which describes the
|
||||
/// memory ordering of this operation. All ordering modes are possible. Note
|
||||
@ -1565,8 +1565,7 @@ impl<T> AtomicPtr<T> {
|
||||
/// **Note**: This method is only available on platforms that support atomic
|
||||
/// operations on [`AtomicPtr`].
|
||||
///
|
||||
/// [`wrapping_add`]: pointer::wrapping_add
|
||||
/// [`cast`]: pointer::cast
|
||||
/// [`wrapping_byte_add`]: pointer::wrapping_byte_add
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
@ -1591,8 +1590,8 @@ impl<T> AtomicPtr<T> {
|
||||
/// Offsets the pointer's address by subtracting `val` *bytes*, returning the
|
||||
/// previous pointer.
|
||||
///
|
||||
/// This is equivalent to using [`wrapping_sub`] and [`cast`] to atomically
|
||||
/// perform `ptr = ptr.cast::<u8>().wrapping_sub(val).cast::<T>()`.
|
||||
/// This is equivalent to using [`wrapping_byte_sub`] to atomically
|
||||
/// perform `ptr = ptr.wrapping_byte_sub(val)`.
|
||||
///
|
||||
/// `fetch_byte_sub` takes an [`Ordering`] argument which describes the
|
||||
/// memory ordering of this operation. All ordering modes are possible. Note
|
||||
@ -1602,8 +1601,7 @@ impl<T> AtomicPtr<T> {
|
||||
/// **Note**: This method is only available on platforms that support atomic
|
||||
/// operations on [`AtomicPtr`].
|
||||
///
|
||||
/// [`wrapping_sub`]: pointer::wrapping_sub
|
||||
/// [`cast`]: pointer::cast
|
||||
/// [`wrapping_byte_sub`]: pointer::wrapping_byte_sub
|
||||
///
|
||||
/// # Examples
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user