File tree 2 files changed +8
-6
lines changed
2 files changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -607,8 +607,9 @@ impl<T: ?Sized> *const T {
607
607
/// Calculates the distance between two pointers. The returned value is in
608
608
/// units of T: the distance in bytes divided by `mem::size_of::<T>()`.
609
609
///
610
- /// This function is the inverse of [`offset`]: it is valid to call and will return
611
- /// `n` if and only if `origin.offset(n)` is valid to call and will return `self`.
610
+ /// This is equivalent to `(self as isize - origin as isize) / (mem::size_of::<T>() as isize)`,
611
+ /// except that it has a lot more opportunities for UB, in exchange for the compiler
612
+ /// better understanding what you are doing.
612
613
///
613
614
/// [`offset`]: #method.offset
614
615
///
@@ -617,7 +618,7 @@ impl<T: ?Sized> *const T {
617
618
/// If any of the following conditions are violated, the result is Undefined
618
619
/// Behavior:
619
620
///
620
- /// * Both the starting and other pointer must be either in bounds or one
621
+ /// * Both `self` and `origin` must be either in bounds or one
621
622
/// byte past the end of the same [allocated object].
622
623
///
623
624
/// * Both pointers must be *derived from* a pointer to the same object.
Original file line number Diff line number Diff line change @@ -781,8 +781,9 @@ impl<T: ?Sized> *mut T {
781
781
/// Calculates the distance between two pointers. The returned value is in
782
782
/// units of T: the distance in bytes divided by `mem::size_of::<T>()`.
783
783
///
784
- /// This function is the inverse of [`offset`]: it is valid to call and will return
785
- /// `n` if and only if `origin.offset(n)` is valid to call and will return `self`.
784
+ /// This is equivalent to `(self as isize - origin as isize) / (mem::size_of::<T>() as isize)`,
785
+ /// except that it has a lot more opportunities for UB, in exchange for the compiler
786
+ /// better understanding what you are doing.
786
787
///
787
788
/// [`offset`]: pointer#method.offset-1
788
789
///
@@ -791,7 +792,7 @@ impl<T: ?Sized> *mut T {
791
792
/// If any of the following conditions are violated, the result is Undefined
792
793
/// Behavior:
793
794
///
794
- /// * Both the starting and other pointer must be either in bounds or one
795
+ /// * Both `self` and `origin` must be either in bounds or one
795
796
/// byte past the end of the same [allocated object].
796
797
///
797
798
/// * Both pointers must be *derived from* a pointer to the same object.
You can’t perform that action at this time.
0 commit comments