Rollup merge of #74782 - vorner:weak-into-raw-cnt-doc, r=dtolnay
Don't use "weak count" around Weak::from_raw_ptr As `Rc/Arc::weak_count` returns 0 when having no strong counts, this could be confusing and it's better to avoid using that completely. Closes #73840.
This commit is contained in:
commit
46379687ac
@ -1692,8 +1692,9 @@ impl<T> Weak<T> {
|
|||||||
|
|
||||||
/// Consumes the `Weak<T>` and turns it into a raw pointer.
|
/// Consumes the `Weak<T>` and turns it into a raw pointer.
|
||||||
///
|
///
|
||||||
/// This converts the weak pointer into a raw pointer, preserving the original weak count. It
|
/// This converts the weak pointer into a raw pointer, while still preserving the ownership of
|
||||||
/// can be turned back into the `Weak<T>` with [`from_raw`].
|
/// one weak reference (the weak count is not modified by this operation). It can be turned
|
||||||
|
/// back into the `Weak<T>` with [`from_raw`].
|
||||||
///
|
///
|
||||||
/// The same restrictions of accessing the target of the pointer as with
|
/// The same restrictions of accessing the target of the pointer as with
|
||||||
/// [`as_ptr`] apply.
|
/// [`as_ptr`] apply.
|
||||||
@ -1728,17 +1729,18 @@ impl<T> Weak<T> {
|
|||||||
/// This can be used to safely get a strong reference (by calling [`upgrade`]
|
/// This can be used to safely get a strong reference (by calling [`upgrade`]
|
||||||
/// later) or to deallocate the weak count by dropping the `Weak<T>`.
|
/// later) or to deallocate the weak count by dropping the `Weak<T>`.
|
||||||
///
|
///
|
||||||
/// It takes ownership of one weak count (with the exception of pointers created by [`new`],
|
/// It takes ownership of one weak reference (with the exception of pointers created by [`new`],
|
||||||
/// as these don't have any corresponding weak count).
|
/// as these don't own anything; the method still works on them).
|
||||||
///
|
///
|
||||||
/// # Safety
|
/// # Safety
|
||||||
///
|
///
|
||||||
/// The pointer must have originated from the [`into_raw`] and must still own its potential
|
/// The pointer must have originated from the [`into_raw`] and must still own its potential
|
||||||
/// weak reference count.
|
/// weak reference.
|
||||||
///
|
///
|
||||||
/// It is allowed for the strong count to be 0 at the time of calling this, but the weak count
|
/// It is allowed for the strong count to be 0 at the time of calling this. Nevertheless, this
|
||||||
/// must be non-zero or the pointer must have originated from a dangling `Weak<T>` (one created
|
/// takes ownership of one weak reference currently represented as a raw pointer (the weak
|
||||||
/// by [`new`]).
|
/// count is not modified by this operation) and therefore it must be paired with a previous
|
||||||
|
/// call to [`into_raw`].
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
|
@ -1462,8 +1462,9 @@ impl<T> Weak<T> {
|
|||||||
|
|
||||||
/// Consumes the `Weak<T>` and turns it into a raw pointer.
|
/// Consumes the `Weak<T>` and turns it into a raw pointer.
|
||||||
///
|
///
|
||||||
/// This converts the weak pointer into a raw pointer, preserving the original weak count. It
|
/// This converts the weak pointer into a raw pointer, while still preserving the ownership of
|
||||||
/// can be turned back into the `Weak<T>` with [`from_raw`].
|
/// one weak reference (the weak count is not modified by this operation). It can be turned
|
||||||
|
/// back into the `Weak<T>` with [`from_raw`].
|
||||||
///
|
///
|
||||||
/// The same restrictions of accessing the target of the pointer as with
|
/// The same restrictions of accessing the target of the pointer as with
|
||||||
/// [`as_ptr`] apply.
|
/// [`as_ptr`] apply.
|
||||||
@ -1493,24 +1494,23 @@ impl<T> Weak<T> {
|
|||||||
result
|
result
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Converts a raw pointer previously created by [`into_raw`] back into
|
/// Converts a raw pointer previously created by [`into_raw`] back into `Weak<T>`.
|
||||||
/// `Weak<T>`.
|
|
||||||
///
|
///
|
||||||
/// This can be used to safely get a strong reference (by calling [`upgrade`]
|
/// This can be used to safely get a strong reference (by calling [`upgrade`]
|
||||||
/// later) or to deallocate the weak count by dropping the `Weak<T>`.
|
/// later) or to deallocate the weak count by dropping the `Weak<T>`.
|
||||||
///
|
///
|
||||||
/// It takes ownership of one weak count (with the exception of pointers created by [`new`],
|
/// It takes ownership of one weak reference (with the exception of pointers created by [`new`],
|
||||||
/// as these don't have any corresponding weak count).
|
/// as these don't own anything; the method still works on them).
|
||||||
///
|
///
|
||||||
/// # Safety
|
/// # Safety
|
||||||
///
|
///
|
||||||
/// The pointer must have originated from the [`into_raw`] and must still own its potential
|
/// The pointer must have originated from the [`into_raw`] and must still own its potential
|
||||||
/// weak reference count.
|
/// weak reference.
|
||||||
///
|
|
||||||
/// It is allowed for the strong count to be 0 at the time of calling this, but the weak count
|
|
||||||
/// must be non-zero or the pointer must have originated from a dangling `Weak<T>` (one created
|
|
||||||
/// by [`new`]).
|
|
||||||
///
|
///
|
||||||
|
/// It is allowed for the strong count to be 0 at the time of calling this. Nevertheless, this
|
||||||
|
/// takes ownership of one weak reference currently represented as a raw pointer (the weak
|
||||||
|
/// count is not modified by this operation) and therefore it must be paired with a previous
|
||||||
|
/// call to [`into_raw`].
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```
|
/// ```
|
||||||
|
Loading…
x
Reference in New Issue
Block a user