* [patch] Code cleanup: Drop frame_unwind_find_by_frame retval
@ 2010-08-07 19:59 Jan Kratochvil
2010-08-11 13:23 ` Jan Kratochvil
0 siblings, 1 reply; 2+ messages in thread
From: Jan Kratochvil @ 2010-08-07 19:59 UTC (permalink / raw)
To: gdb-patches
Hi,
it is obvious (as frame->unwind is already pre-set by
frame_prepare_for_sniffer). I will check it in in several days if not replied
otherwise.
No regressions on {x86_64,x86_64-m32,i686}-fedora14snapshot-linux-gnu.
Thanks,
Jan
2010-08-07 Jan Kratochvil <jan.kratochvil@redhat.com>
Code cleanup.
* frame-unwind.c (frame_unwind_find_by_frame): Remove the return type
and returned value. New comment from frame-unwind.h.
* frame-unwind.h (frame_unwind_find_by_frame): Remove the return type.
Extend the comment.
* frame.c (get_frame_id, frame_unwind_register_value)
(create_new_frame, get_prev_frame_1, frame_unwinder_is)
(get_frame_type, frame_unwind_arch): Do not use the return value of
frame_unwind_find_by_frame.
--- a/gdb/frame-unwind.c
+++ b/gdb/frame-unwind.c
@@ -88,7 +88,11 @@ frame_unwind_append_unwinder (struct gdbarch *gdbarch,
(*ip)->unwinder = unwinder;
}
-const struct frame_unwind *
+/* Iterate through sniffers for THIS_FRAME frame until one returns with an
+ unwinder implementation. THIS_FRAME->UNWIND must be NULL, it will get set
+ by this function. Possibly initialize THIS_CACHE. */
+
+void
frame_unwind_find_by_frame (struct frame_info *this_frame, void **this_cache)
{
struct gdbarch *gdbarch = get_frame_arch (this_frame);
@@ -104,7 +108,7 @@ frame_unwind_find_by_frame (struct frame_info *this_frame, void **this_cache)
this_cache))
{
discard_cleanups (old_cleanup);
- return entry->unwinder;
+ return;
}
do_cleanups (old_cleanup);
}
--- a/gdb/frame-unwind.h
+++ b/gdb/frame-unwind.h
@@ -160,11 +160,12 @@ extern void frame_unwind_prepend_unwinder (struct gdbarch *gdbarch,
extern void frame_unwind_append_unwinder (struct gdbarch *gdbarch,
const struct frame_unwind *unwinder);
-/* Iterate through sniffers for THIS frame until one returns with an
- unwinder implementation. Possibly initialize THIS_CACHE. */
+/* Iterate through sniffers for THIS_FRAME frame until one returns with an
+ unwinder implementation. THIS_FRAME->UNWIND must be NULL, it will get set
+ by this function. Possibly initialize THIS_CACHE. */
-extern const struct frame_unwind *frame_unwind_find_by_frame (struct frame_info *this_frame,
- void **this_cache);
+extern void frame_unwind_find_by_frame (struct frame_info *this_frame,
+ void **this_cache);
/* Helper functions for value-based register unwinding. These return
a (possibly lazy) value of the appropriate type. */
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -329,7 +329,7 @@ get_frame_id (struct frame_info *fi)
fi->level);
/* Find the unwinder. */
if (fi->unwind == NULL)
- fi->unwind = frame_unwind_find_by_frame (fi, &fi->prologue_cache);
+ frame_unwind_find_by_frame (fi, &fi->prologue_cache);
/* Find THIS frame's ID. */
/* Default to outermost if no ID is found. */
fi->this_id.value = outer_frame_id;
@@ -839,7 +839,7 @@ frame_unwind_register_value (struct frame_info *frame, int regnum)
/* Find the unwinder. */
if (frame->unwind == NULL)
- frame->unwind = frame_unwind_find_by_frame (frame, &frame->prologue_cache);
+ frame_unwind_find_by_frame (frame, &frame->prologue_cache);
/* Ask this frame to unwind its register. */
value = frame->unwind->prev_register (frame, &frame->prologue_cache, regnum);
@@ -1328,7 +1328,7 @@ create_new_frame (CORE_ADDR addr, CORE_ADDR pc)
/* Select/initialize both the unwind function and the frame's type
based on the PC. */
- fi->unwind = frame_unwind_find_by_frame (fi, &fi->prologue_cache);
+ frame_unwind_find_by_frame (fi, &fi->prologue_cache);
fi->this_id.p = 1;
fi->this_id.value = frame_id_build (addr, pc);
@@ -1463,8 +1463,7 @@ get_prev_frame_1 (struct frame_info *this_frame)
sniffers will think that this frame's sniffer tried to unwind
further (see frame_cleanup_after_sniffer). */
if (this_frame->unwind == NULL)
- this_frame->unwind
- = frame_unwind_find_by_frame (this_frame, &this_frame->prologue_cache);
+ frame_unwind_find_by_frame (this_frame, &this_frame->prologue_cache);
this_frame->prev_p = 1;
this_frame->stop_reason = UNWIND_NO_REASON;
@@ -1961,7 +1960,7 @@ int
frame_unwinder_is (struct frame_info *fi, const struct frame_unwind *unwinder)
{
if (fi->unwind == NULL)
- fi->unwind = frame_unwind_find_by_frame (fi, &fi->prologue_cache);
+ frame_unwind_find_by_frame (fi, &fi->prologue_cache);
return fi->unwind == unwinder;
}
@@ -1983,7 +1982,7 @@ get_frame_type (struct frame_info *frame)
if (frame->unwind == NULL)
/* Initialize the frame's unwinder because that's what
provides the frame's type. */
- frame->unwind = frame_unwind_find_by_frame (frame, &frame->prologue_cache);
+ frame_unwind_find_by_frame (frame, &frame->prologue_cache);
return frame->unwind->type;
}
@@ -2063,9 +2062,7 @@ frame_unwind_arch (struct frame_info *next_frame)
struct gdbarch *arch;
if (next_frame->unwind == NULL)
- next_frame->unwind
- = frame_unwind_find_by_frame (next_frame,
- &next_frame->prologue_cache);
+ frame_unwind_find_by_frame (next_frame, &next_frame->prologue_cache);
if (next_frame->unwind->prev_arch != NULL)
arch = next_frame->unwind->prev_arch (next_frame,
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [patch] Code cleanup: Drop frame_unwind_find_by_frame retval
2010-08-07 19:59 [patch] Code cleanup: Drop frame_unwind_find_by_frame retval Jan Kratochvil
@ 2010-08-11 13:23 ` Jan Kratochvil
0 siblings, 0 replies; 2+ messages in thread
From: Jan Kratochvil @ 2010-08-11 13:23 UTC (permalink / raw)
To: gdb-patches
On Sat, 07 Aug 2010 21:59:26 +0200, Jan Kratochvil wrote:
> it is obvious (as frame->unwind is already pre-set by
> frame_prepare_for_sniffer). I will check it in in several days if not replied
> otherwise.
>
> No regressions on {x86_64,x86_64-m32,i686}-fedora14snapshot-linux-gnu.
>
> 2010-08-07 Jan Kratochvil <jan.kratochvil@redhat.com>
>
> Code cleanup.
> * frame-unwind.c (frame_unwind_find_by_frame): Remove the return type
> and returned value. New comment from frame-unwind.h.
> * frame-unwind.h (frame_unwind_find_by_frame): Remove the return type.
> Extend the comment.
> * frame.c (get_frame_id, frame_unwind_register_value)
> (create_new_frame, get_prev_frame_1, frame_unwinder_is)
> (get_frame_type, frame_unwind_arch): Do not use the return value of
> frame_unwind_find_by_frame.
Checked-in:
http://sourceware.org/ml/gdb-cvs/2010-08/msg00052.html
Thanks,
Jan
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-08-11 13:23 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-07 19:59 [patch] Code cleanup: Drop frame_unwind_find_by_frame retval Jan Kratochvil
2010-08-11 13:23 ` Jan Kratochvil
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).