diff options
| author | Ralf Jung <post@ralfj.de> | 2019-11-26 09:24:39 +0100 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2019-11-26 09:24:39 +0100 |
| commit | 3e96ca2bf7f7c558623e372e7a9800ac752faa9c (patch) | |
| tree | 1eb587ba287c8472ff59b5bf7ca3588cdcf1785d /src/libstd | |
| parent | 3a8e1b63cfc472a3c4884f6a31ab2236d7dd2fb7 (diff) | |
| download | rust-3e96ca2bf7f7c558623e372e7a9800ac752faa9c.tar.gz rust-3e96ca2bf7f7c558623e372e7a9800ac752faa9c.zip | |
abort on BoxMeUp misuse
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/panicking.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libstd/panicking.rs b/src/libstd/panicking.rs index 31dcbc6a7cb..5ba5d89bb63 100644 --- a/src/libstd/panicking.rs +++ b/src/libstd/panicking.rs @@ -20,6 +20,7 @@ use crate::sys_common::rwlock::RWLock; use crate::sys_common::{thread_info, util}; use crate::sys_common::backtrace::{self, RustBacktrace}; use crate::thread; +use crate::process; #[cfg(not(test))] use crate::io::set_panic; @@ -414,7 +415,7 @@ pub fn begin_panic<M: Any + Send>(msg: M, file_line_col: &(&'static str, u32, u3 fn take_box(&mut self) -> *mut (dyn Any + Send) { let data = match self.inner.take() { Some(a) => Box::new(a) as Box<dyn Any + Send>, - None => Box::new(()), // this should never happen: we got called twice + None => process::abort(), }; Box::into_raw(data) } @@ -422,7 +423,7 @@ pub fn begin_panic<M: Any + Send>(msg: M, file_line_col: &(&'static str, u32, u3 fn get(&mut self) -> &(dyn Any + Send) { match self.inner { Some(ref a) => a, - None => &(), + None => process::abort(), } } } |
