@@ -687,26 +687,10 @@ pub const fn begin_panic<M: Any + Send>(msg: M) -> ! { |
|
|
687 |
687 |
intrinsics::abort() |
688 |
688 |
} |
689 |
689 |
|
690 |
|
-let loc = Location::caller(); |
691 |
|
-return crate::sys_common::backtrace::__rust_end_short_backtrace(move | |
692 |
|
-rust_panic_with_hook( |
693 |
|
-&mut Payload::new(msg), |
694 |
|
- loc, |
695 |
|
-/* can_unwind */ true, |
696 |
|
-/* force_no_backtrace */ false, |
697 |
|
-) |
698 |
|
-}); |
699 |
|
- |
700 |
690 |
struct Payload<A> { |
701 |
691 |
inner: Option<A>, |
702 |
692 |
} |
703 |
693 |
|
704 |
|
-impl<A: Send + 'static> Payload<A> { |
705 |
|
-fn new(inner: A) -> Payload<A> { |
706 |
|
-Payload { inner: Some(inner) } |
707 |
|
-} |
708 |
|
-} |
709 |
|
- |
710 |
694 |
unsafe impl<A: Send + 'static> PanicPayload for Payload<A> { |
711 |
695 |
fn take_box(&mut self) -> *mut (dyn Any + Send) { |
712 |
696 |
// Note that this should be the only allocation performed in this code path. Currently |
@@ -729,14 +713,24 @@ pub const fn begin_panic<M: Any + Send>(msg: M) -> ! { |
|
|
729 |
713 |
} |
730 |
714 |
} |
731 |
715 |
|
732 |
|
-impl<A: Send + 'static> fmt::Display for Payload<A> { |
|
716 |
+impl<A: 'static> fmt::Display for Payload<A> { |
733 |
717 |
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
734 |
718 |
match &self.inner { |
735 |
719 |
Some(a) => f.write_str(payload_as_str(a)), |
736 |
720 |
None => process::abort(), |
737 |
721 |
} |
738 |
722 |
} |
739 |
723 |
} |
|
724 |
+ |
|
725 |
+let loc = Location::caller(); |
|
726 |
+crate::sys_common::backtrace::__rust_end_short_backtrace(move | |
|
727 |
+rust_panic_with_hook( |
|
728 |
+&mut Payload { inner: Some(msg) }, |
|
729 |
+ loc, |
|
730 |
+/* can_unwind */ true, |
|
731 |
+/* force_no_backtrace */ false, |
|
732 |
+) |
|
733 |
+}) |
740 |
734 |
} |
741 |
735 |
|
742 |
736 |
fn payload_as_str(payload: &dyn Any) -> &str { |