about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorAdam Perry <adam.n.perry@gmail.com>2020-01-04 00:49:18 -0800
committerAdam Perry <adam.n.perry@gmail.com>2020-01-04 10:02:17 -0800
commitb76a5be18f69b79ddad8a6b72faf8ae9f2bb5e6d (patch)
treecb7179aadc7cd0d6bfb71fbbaae393e13ce627fa /src/libstd
parent612c4c6c900a6e2d39df1019a794a8aa3ddf6e17 (diff)
downloadrust-b76a5be18f69b79ddad8a6b72faf8ae9f2bb5e6d.tar.gz
rust-b76a5be18f69b79ddad8a6b72faf8ae9f2bb5e6d.zip
Clean up comments in panicking infra.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/panicking.rs19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/libstd/panicking.rs b/src/libstd/panicking.rs
index e3ce7a33a6f..599ccc809be 100644
--- a/src/libstd/panicking.rs
+++ b/src/libstd/panicking.rs
@@ -354,6 +354,9 @@ pub fn begin_panic_handler(info: &PanicInfo<'_>) -> ! {
 
     unsafe impl<'a> BoxMeUp for PanicPayload<'a> {
         fn take_box(&mut self) -> *mut (dyn Any + Send) {
+            // We do two allocations here, unfortunately. But (a) they're required with the current
+            // scheme, and (b) we don't handle panic + OOM properly anyway (see comment in
+            // begin_panic below).
             let contents = mem::take(self.fill());
             Box::into_raw(Box::new(contents))
         }
@@ -363,11 +366,6 @@ pub fn begin_panic_handler(info: &PanicInfo<'_>) -> ! {
         }
     }
 
-    // We do two allocations here, unfortunately. But (a) they're
-    // required with the current scheme, and (b) we don't handle
-    // panic + OOM properly anyway (see comment in begin_panic
-    // below).
-
     let loc = info.location().unwrap(); // The current implementation always returns Some
     let msg = info.message().unwrap(); // The current implementation always returns Some
     rust_panic_with_hook(&mut PanicPayload::new(msg), info.message(), loc);
@@ -389,12 +387,6 @@ pub fn begin_panic<M: Any + Send>(msg: M, #[cfg(bootstrap)] _: &(&str, u32, u32)
         unsafe { intrinsics::abort() }
     }
 
-    // Note that this should be the only allocation performed in this code path.
-    // Currently this means that panic!() on OOM will invoke this code path,
-    // but then again we're not really ready for panic on OOM anyway. If
-    // we do start doing this, then we should propagate this allocation to
-    // be performed in the parent of this thread instead of the thread that's
-    // panicking.
     rust_panic_with_hook(&mut PanicPayload::new(msg), None, Location::caller());
 
     struct PanicPayload<A> {
@@ -409,6 +401,11 @@ pub fn begin_panic<M: Any + Send>(msg: M, #[cfg(bootstrap)] _: &(&str, u32, u32)
 
     unsafe impl<A: Send + 'static> BoxMeUp for PanicPayload<A> {
         fn take_box(&mut self) -> *mut (dyn Any + Send) {
+            // Note that this should be the only allocation performed in this code path. Currently
+            // this means that panic!() on OOM will invoke this code path, but then again we're not
+            // really ready for panic on OOM anyway. If we do start doing this, then we should
+            // propagate this allocation to be performed in the parent of this thread instead of the
+            // thread that's panicking.
             let data = match self.inner.take() {
                 Some(a) => Box::new(a) as Box<dyn Any + Send>,
                 None => process::abort(),