public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [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).