public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [patch] Code cleanup: unwinders: Reference directly the struct
@ 2010-08-08 16:13 Jan Kratochvil
  2010-08-11 13:25 ` Jan Kratochvil
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Kratochvil @ 2010-08-08 16:13 UTC (permalink / raw)
  To: gdb-patches

Hi,

it is obvious, I am not aware why it has been made the current way.  It even
does not make an ABI sense.  If any ABI would make sense inside GDB sources,
which it does not.  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-08  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* dummy-frame.c (dummy_frame_unwinder): Remove its static qualifier.
	Rename to dummy_frame_unwind.
	(dummy_frame_unwind): Remove.
	* dummy-frame.h (dummy_frame_unwind): Reference directly the struct.
	* frame-unwind.c (frame_unwind_init): Use address of
	dummy_frame_unwind and inline_frame_unwind.
	* frame.c (create_sentinel_frame): Use address of
	sentinel_frame_unwind.
	* inline-frame.c (inline_frame_unwinder): Rename to
	inline_frame_unwind.
	(inline_frame_unwind): Remove.
	* inline-frame.h (inline_frame_unwind): Reference directly the struct.
	* sentinel-frame.c (sentinel_frame_unwinder): Rename to
	sentinel_frame_unwind.
	(sentinel_frame_unwind): Remove.
	* sentinel-frame.h (sentinel_frame_unwind): Reference directly the
	struct.

--- a/gdb/dummy-frame.c
+++ b/gdb/dummy-frame.c
@@ -274,7 +274,7 @@ dummy_frame_this_id (struct frame_info *this_frame,
   (*this_id) = cache->this_id;
 }
 
-static const struct frame_unwind dummy_frame_unwinder =
+const struct frame_unwind dummy_frame_unwind =
 {
   DUMMY_FRAME,
   dummy_frame_this_id,
@@ -283,10 +283,6 @@ static const struct frame_unwind dummy_frame_unwinder =
   dummy_frame_sniffer,
 };
 
-const struct frame_unwind *const dummy_frame_unwind = {
-  &dummy_frame_unwinder
-};
-
 static void
 fprint_dummy_frames (struct ui_file *file)
 {
--- a/gdb/dummy-frame.h
+++ b/gdb/dummy-frame.h
@@ -56,6 +56,6 @@ extern void dummy_frame_pop (struct frame_id dummy_id);
 /* If the PC falls in a dummy frame, return a dummy frame
    unwinder.  */
 
-extern const struct frame_unwind *const dummy_frame_unwind;
+extern const struct frame_unwind dummy_frame_unwind;
 
 #endif /* !defined (DUMMY_FRAME_H)  */
--- a/gdb/frame-unwind.c
+++ b/gdb/frame-unwind.c
@@ -53,9 +53,9 @@ frame_unwind_init (struct obstack *obstack)
   /* Start the table out with a few default sniffers.  OSABI code
      can't override this.  */
   table->list = OBSTACK_ZALLOC (obstack, struct frame_unwind_table_entry);
-  table->list->unwinder = dummy_frame_unwind;
+  table->list->unwinder = &dummy_frame_unwind;
   table->list->next = OBSTACK_ZALLOC (obstack, struct frame_unwind_table_entry);
-  table->list->next->unwinder = inline_frame_unwind;
+  table->list->next->unwinder = &inline_frame_unwind;
   /* The insertion point for OSABI sniffers.  */
   table->osabi_head = &table->list->next->next;
   return table;
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1100,7 +1100,7 @@ create_sentinel_frame (struct program_space *pspace, struct regcache *regcache)
      information, such as the frame's thread will be added.  */
   frame->prologue_cache = sentinel_frame_cache (regcache);
   /* For the moment there is only one sentinel frame implementation.  */
-  frame->unwind = sentinel_frame_unwind;
+  frame->unwind = &sentinel_frame_unwind;
   /* Link this frame back to itself.  The frame is self referential
      (the unwound PC is the same as the pc), so make it so.  */
   frame->next = frame;
--- a/gdb/inline-frame.c
+++ b/gdb/inline-frame.c
@@ -256,7 +256,7 @@ inline_frame_sniffer (const struct frame_unwind *self,
   return 1;
 }
 
-const struct frame_unwind inline_frame_unwinder = {
+const struct frame_unwind inline_frame_unwind = {
   INLINE_FRAME,
   inline_frame_this_id,
   inline_frame_prev_register,
@@ -264,8 +264,6 @@ const struct frame_unwind inline_frame_unwinder = {
   inline_frame_sniffer
 };
 
-const struct frame_unwind *const inline_frame_unwind = &inline_frame_unwinder;
-
 /* Return non-zero if BLOCK, an inlined function block containing PC,
    has a group of contiguous instructions starting at PC (but not
    before it).  */
--- a/gdb/inline-frame.h
+++ b/gdb/inline-frame.h
@@ -25,7 +25,7 @@ struct frame_unwind;
 
 /* The inline frame unwinder.  */
 
-extern const struct frame_unwind *const inline_frame_unwind;
+extern const struct frame_unwind inline_frame_unwind;
 
 /* Skip all inlined functions whose call sites are at the current PC.
    Frames for the hidden functions will not appear in the backtrace until the
--- a/gdb/sentinel-frame.c
+++ b/gdb/sentinel-frame.c
@@ -86,7 +86,7 @@ sentinel_frame_prev_arch (struct frame_info *this_frame,
   return get_regcache_arch (cache->regcache);
 }
 
-const struct frame_unwind sentinel_frame_unwinder =
+const struct frame_unwind sentinel_frame_unwind =
 {
   SENTINEL_FRAME,
   sentinel_frame_this_id,
@@ -96,5 +96,3 @@ const struct frame_unwind sentinel_frame_unwinder =
   NULL,
   sentinel_frame_prev_arch,
 };
-
-const struct frame_unwind *const sentinel_frame_unwind = &sentinel_frame_unwinder;
--- a/gdb/sentinel-frame.h
+++ b/gdb/sentinel-frame.h
@@ -34,6 +34,6 @@ extern void *sentinel_frame_cache (struct regcache *regcache);
 
 /* At present there is only one type of sentinel frame.  */
 
-extern const struct frame_unwind *const sentinel_frame_unwind;
+extern const struct frame_unwind sentinel_frame_unwind;
 
 #endif /* !defined (SENTINEL_FRAME_H)  */

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [patch] Code cleanup: unwinders: Reference directly the struct
  2010-08-08 16:13 [patch] Code cleanup: unwinders: Reference directly the struct Jan Kratochvil
@ 2010-08-11 13:25 ` Jan Kratochvil
  0 siblings, 0 replies; 2+ messages in thread
From: Jan Kratochvil @ 2010-08-11 13:25 UTC (permalink / raw)
  To: gdb-patches

On Sun, 08 Aug 2010 18:13:00 +0200, Jan Kratochvil wrote:
> it is obvious, I am not aware why it has been made the current way.  It even
> does not make an ABI sense.  If any ABI would make sense inside GDB sources,
> which it does not.  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-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
> 
> 	* dummy-frame.c (dummy_frame_unwinder): Remove its static qualifier.
> 	Rename to dummy_frame_unwind.
> 	(dummy_frame_unwind): Remove.
> 	* dummy-frame.h (dummy_frame_unwind): Reference directly the struct.
> 	* frame-unwind.c (frame_unwind_init): Use address of
> 	dummy_frame_unwind and inline_frame_unwind.
> 	* frame.c (create_sentinel_frame): Use address of
> 	sentinel_frame_unwind.
> 	* inline-frame.c (inline_frame_unwinder): Rename to
> 	inline_frame_unwind.
> 	(inline_frame_unwind): Remove.
> 	* inline-frame.h (inline_frame_unwind): Reference directly the struct.
> 	* sentinel-frame.c (sentinel_frame_unwinder): Rename to
> 	sentinel_frame_unwind.
> 	(sentinel_frame_unwind): Remove.
> 	* sentinel-frame.h (sentinel_frame_unwind): Reference directly the
> 	struct.

Checked-in:
	http://sourceware.org/ml/gdb-cvs/2010-08/msg00053.html


Thanks,
Jan

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-08-11 13:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-08-08 16:13 [patch] Code cleanup: unwinders: Reference directly the struct Jan Kratochvil
2010-08-11 13:25 ` 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).