diff options
| author | Jon Bauman <baumanj@users.noreply.github.com> | 2025-05-06 13:19:42 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-06 13:19:42 -0700 |
| commit | 6a4af821b00a1e55f44c80846c1a438a3c41dee5 (patch) | |
| tree | fddba15a9a487dbcb60def9d83e527ad4a772dc2 | |
| parent | dd20225681cf581066afab23db0c0d854806370d (diff) | |
| download | rust-6a4af821b00a1e55f44c80846c1a438a3c41dee5.tar.gz rust-6a4af821b00a1e55f44c80846c1a438a3c41dee5.zip | |
Update rc.rs docs
Update comment per review feedback
| -rw-r--r-- | library/alloc/src/rc.rs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/library/alloc/src/rc.rs b/library/alloc/src/rc.rs index 247afc62832..4b8ea708e7e 100644 --- a/library/alloc/src/rc.rs +++ b/library/alloc/src/rc.rs @@ -3536,11 +3536,11 @@ impl<T> Default for Weak<T> { } } -// NOTE: We wrapping_add here to deal with mem::forget safely. In particular -// if you mem::forget Rcs (or Weaks), the ref-count can overflow, and then -// you can free the allocation while outstanding Rcs (or Weaks) exist. -// We abort because this is such a degenerate scenario that we don't care about -// what happens -- no real program should ever experience this. +// NOTE: If you mem::forget Rcs (or Weaks), drop is skipped and the ref-count +// is not decremented, meaning the ref-count can overflow, and then you can +// free the allocation while outstanding Rcs (or Weaks) exist, which would be +// unsound. We abort because this is such a degenerate scenario that we don't +// care about what happens -- no real program should ever experience this. // // This should have negligible overhead since you don't actually need to // clone these much in Rust thanks to ownership and move-semantics. |
