From 50fd528a13ff8a6131ead1b2635fa8a8cf828d80 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Thu, 28 Nov 2013 15:48:51 +0000 Subject: get_prev_frame, outer_frame_id and unwind->stop_reason checks are redundant. After the previous patch, it should be clear that the this_frame->unwind->stop_reason check is redundant with the outer_frame_id check just below. We can now move the frame_id_eq comparison to the default this_frame->unwind->stop_reason callback. Tested on x86_64 Fedora 17. gdb/ 2013-11-28 Pedro Alves * frame-unwind.c (default_frame_unwind_stop_reason): Return UNWIND_OUTERMOST if the frame's ID is outer_frame_id. * frame.c (get_prev_frame_1): Remove outer_frame_id check. --- gdb/frame-unwind.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'gdb/frame-unwind.c') diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c index a731b33..8fabf52 100644 --- a/gdb/frame-unwind.c +++ b/gdb/frame-unwind.c @@ -143,14 +143,18 @@ default_frame_sniffer (const struct frame_unwind *self, return 1; } -/* A default frame unwinder stop_reason callback that always claims - the frame is unwindable. */ +/* The default frame unwinder stop_reason callback. */ enum unwind_stop_reason default_frame_unwind_stop_reason (struct frame_info *this_frame, void **this_cache) { - return UNWIND_NO_REASON; + struct frame_id this_id = get_frame_id (this_frame); + + if (frame_id_eq (this_id, outer_frame_id)) + return UNWIND_OUTERMOST; + else + return UNWIND_NO_REASON; } /* Helper functions for value-based register unwinding. These return -- cgit v1.1