@@ -17,8 +17,7 @@ use crate::ptr;
17
17
use crate :: raw;
18
18
use crate :: sys:: stdio:: panic_output;
19
19
use crate :: sys_common:: rwlock:: RWLock ;
20
- use crate :: sys_common:: thread_info;
21
- use crate :: sys_common:: util;
20
+ use crate :: sys_common:: { thread_info, util, backtrace} ;
22
21
use crate :: thread;
23
22
24
23
#[ cfg( not( test) ) ]
@@ -157,20 +156,18 @@ pub fn take_hook() -> Box<dyn Fn(&PanicInfo<'_>) + 'static + Sync + Send> {
157
156
}
158
157
159
158
fn default_hook ( info : & PanicInfo < ' _ > ) {
160
- #[ cfg( feature = "backtrace" ) ]
161
- use crate :: sys_common:: { backtrace as backtrace_mod} ;
162
-
163
159
// If this is a double panic, make sure that we print a backtrace
164
160
// for this panic. Otherwise only print it if logging is enabled.
165
- #[ cfg( feature = "backtrace" ) ]
166
- let log_backtrace = {
161
+ let log_backtrace = if cfg ! ( feature = "backtrace" ) {
167
162
let panics = update_panic_count ( 0 ) ;
168
163
169
164
if panics >= 2 {
170
165
Some ( backtrace_rs:: PrintFmt :: Full )
171
166
} else {
172
- backtrace_mod :: log_enabled ( )
167
+ backtrace :: log_enabled ( )
173
168
}
169
+ } else {
170
+ None
174
171
} ;
175
172
176
173
// The current implementation always returns `Some`.
@@ -190,14 +187,13 @@ fn default_hook(info: &PanicInfo<'_>) {
190
187
let _ = writeln ! ( err, "thread '{}' panicked at '{}', {}" ,
191
188
name, msg, location) ;
192
189
193
- #[ cfg( feature = "backtrace" ) ]
194
- {
190
+ if cfg ! ( feature = "backtrace" ) {
195
191
use crate :: sync:: atomic:: { AtomicBool , Ordering } ;
196
192
197
193
static FIRST_PANIC : AtomicBool = AtomicBool :: new ( true ) ;
198
194
199
195
if let Some ( format) = log_backtrace {
200
- let _ = backtrace_mod :: print ( err, format) ;
196
+ let _ = backtrace :: print ( err, format) ;
201
197
} else if FIRST_PANIC . compare_and_swap ( true , false , Ordering :: SeqCst ) {
202
198
let _ = writeln ! ( err, "note: run with `RUST_BACKTRACE=1` \
203
199
environment variable to display a backtrace.") ;
0 commit comments