diff options
| author | bors <bors@rust-lang.org> | 2020-07-30 20:57:54 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2020-07-30 20:57:54 +0000 |
| commit | cfc572cae2d1fc381cce476b5c787fd7221af98c (patch) | |
| tree | 0ad520d222d7c1987eefe87e4345d6d804f7bed1 /library/alloc/src | |
| parent | 438c59f010016a8a3a11fbcc4c18ae555d7adf94 (diff) | |
| parent | 9eb50260bd06fa005f7f146702565dfdc7c3b4de (diff) | |
| download | rust-cfc572cae2d1fc381cce476b5c787fd7221af98c.tar.gz rust-cfc572cae2d1fc381cce476b5c787fd7221af98c.zip | |
Auto merge of #74957 - Manishearth:rollup-3wudwlg, r=Manishearth
Rollup of 9 pull requests Successful merges: - #74751 (Clean up E0730 explanation) - #74782 (Don't use "weak count" around Weak::from_raw_ptr) - #74835 (Clean up E0734 explanation) - #74871 (Enable docs on dist-x86_64-musl) - #74905 (Avoid bool-like naming) - #74907 (Clean up E0740 explanation) - #74915 (rustc: Ignore fs::canonicalize errors in metadata) - #74934 (Improve diagnostics when constant pattern is too generic) - #74951 (Cherry-pick the release notes for 1.45.1) Failed merges: r? @ghost
Diffstat (limited to 'library/alloc/src')
| -rw-r--r-- | library/alloc/src/rc.rs | 20 | ||||
| -rw-r--r-- | library/alloc/src/sync.rs | 22 |
2 files changed, 22 insertions, 20 deletions
diff --git a/library/alloc/src/rc.rs b/library/alloc/src/rc.rs index d3450cfbc81..116df63f94b 100644 --- a/library/alloc/src/rc.rs +++ b/library/alloc/src/rc.rs @@ -1692,8 +1692,9 @@ impl<T> Weak<T> { /// 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 - /// can be turned back into the `Weak<T>` with [`from_raw`]. + /// This converts the weak pointer into a raw pointer, while still preserving the ownership of + /// 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 /// [`as_ptr`] apply. @@ -1728,17 +1729,18 @@ impl<T> Weak<T> { /// 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>`. /// - /// It takes ownership of one weak count (with the exception of pointers created by [`new`], - /// as these don't have any corresponding weak count). + /// It takes ownership of one weak reference (with the exception of pointers created by [`new`], + /// as these don't own anything; the method still works on them). /// /// # Safety /// - /// The pointer must have originated from the [`into_raw`] and must still own its potential - /// weak reference count. + /// The pointer must have originated from the [`into_raw`] and must still own its potential + /// 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 /// diff --git a/library/alloc/src/sync.rs b/library/alloc/src/sync.rs index 906beba2a62..58cab9c5c63 100644 --- a/library/alloc/src/sync.rs +++ b/library/alloc/src/sync.rs @@ -1462,8 +1462,9 @@ impl<T> Weak<T> { /// 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 - /// can be turned back into the `Weak<T>` with [`from_raw`]. + /// This converts the weak pointer into a raw pointer, while still preserving the ownership of + /// 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 /// [`as_ptr`] apply. @@ -1493,24 +1494,23 @@ impl<T> Weak<T> { result } - /// Converts a raw pointer previously created by [`into_raw`] back into - /// `Weak<T>`. + /// Converts a raw pointer previously created by [`into_raw`] back into `Weak<T>`. /// /// 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>`. /// - /// It takes ownership of one weak count (with the exception of pointers created by [`new`], - /// as these don't have any corresponding weak count). + /// It takes ownership of one weak reference (with the exception of pointers created by [`new`], + /// as these don't own anything; the method still works on them). /// /// # Safety /// /// The pointer must have originated from the [`into_raw`] and must still own its potential - /// weak reference count. - /// - /// 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`]). + /// weak reference. /// + /// 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 /// /// ``` |
