| @@ -61,7 +61,7 @@ struct Exception { |
|
|
| 61 |
61 |
pub unsafe fn panic(data: Box<dyn Any + Send>) -> u32 { |
| 62 |
62 |
let exception = Box::new(Exception { |
| 63 |
63 |
_uwe: uw::_Unwind_Exception { |
| 64 |
|
-exception_class: rust_exception_class(), |
|
64 |
+exception_class: RUST_EXCEPTION_CLASS, |
| 65 |
65 |
exception_cleanup: Some(exception_cleanup), |
| 66 |
66 |
private: [core::ptr::null(); uw::unwinder_private_data_size], |
| 67 |
67 |
}, |
| @@ -84,7 +84,7 @@ pub unsafe fn panic(data: Box<dyn Any + Send>) -> u32 { |
|
|
| 84 |
84 |
|
| 85 |
85 |
pub unsafe fn cleanup(ptr: *mut u8) -> Box<dyn Any + Send> { |
| 86 |
86 |
let exception = ptr as *mut uw::_Unwind_Exception; |
| 87 |
|
-if (*exception).exception_class != rust_exception_class() { |
|
87 |
+if (*exception).exception_class != RUST_EXCEPTION_CLASS { |
| 88 |
88 |
uw::_Unwind_DeleteException(exception); |
| 89 |
89 |
super::__rust_foreign_exception(); |
| 90 |
90 |
} |
| @@ -107,7 +107,4 @@ pub unsafe fn cleanup(ptr: *mut u8) -> Box<dyn Any + Send> { |
|
|
| 107 |
107 |
|
| 108 |
108 |
// Rust's exception class identifier. This is used by personality routines to |
| 109 |
109 |
// determine whether the exception was thrown by their own runtime. |
| 110 |
|
-fn rust_exception_class() -> uw::_Unwind_Exception_Class { |
| 111 |
|
-// M O Z \0 R U S T -- vendor, language |
| 112 |
|
-0x4d4f5a_00_52555354 |
| 113 |
|
-} |
|
110 |
+const RUST_EXCEPTION_CLASS: uw::_Unwind_Exception_Class = u64::from_be_bytes(*b"MOZ\0RUST"); |