gdb: make disassembler fprintf callback a static member function
authorAndrew Burgess <andrew.burgess@embecosm.com>
Wed, 13 Oct 2021 17:18:12 +0000 (18:18 +0100)
committerAndrew Burgess <andrew.burgess@embecosm.com>
Fri, 22 Oct 2021 12:42:37 +0000 (13:42 +0100)
The disassemble_info structure has four callbacks, we have three of
them as static member functions within gdb_disassembler, the fourth is
just a global static function.

However, this fourth callback, is still only used from the
disassemble_info struct, so there's no real reason for its special
handling.

This commit makes fprintf_disasm a static method within
gdb_disassembler.

There should be no user visible changes after this commit.

gdb/disasm.c
gdb/disasm.h

index dc6426718bb6778d2d53d8b5bb37aaadb4d22f2d..c045dfc94a68e7241b688838c058e8c7a47c9ab7 100644 (file)
@@ -163,6 +163,20 @@ gdb_disassembler::dis_asm_print_address (bfd_vma addr,
   print_address (self->arch (), addr, self->stream ());
 }
 
+/* Format disassembler output to STREAM.  */
+
+int
+gdb_disassembler::dis_asm_fprintf (void *stream, const char *format, ...)
+{
+  va_list args;
+
+  va_start (args, format);
+  vfprintf_filtered ((struct ui_file *) stream, format, args);
+  va_end (args);
+  /* Something non -ve.  */
+  return 0;
+}
+
 static bool
 line_is_less_than (const deprecated_dis_line_entry &mle1,
                   const deprecated_dis_line_entry &mle2)
@@ -711,21 +725,6 @@ do_assembly_only (struct gdbarch *gdbarch, struct ui_out *uiout,
   dump_insns (gdbarch, uiout, low, high, how_many, flags, NULL);
 }
 
-/* Initialize the disassemble info struct ready for the specified
-   stream.  */
-
-static int ATTRIBUTE_PRINTF (2, 3)
-fprintf_disasm (void *stream, const char *format, ...)
-{
-  va_list args;
-
-  va_start (args, format);
-  vfprintf_filtered ((struct ui_file *) stream, format, args);
-  va_end (args);
-  /* Something non -ve.  */
-  return 0;
-}
-
 /* Combine implicit and user disassembler options and return them
    in a newly-created string.  */
 
@@ -756,7 +755,7 @@ gdb_disassembler::gdb_disassembler (struct gdbarch *gdbarch,
                                    di_read_memory_ftype read_memory_func)
   : m_gdbarch (gdbarch)
 {
-  init_disassemble_info (&m_di, file, fprintf_disasm);
+  init_disassemble_info (&m_di, file, dis_asm_fprintf);
   m_di.flavour = bfd_target_unknown_flavour;
   m_di.memory_error_func = dis_asm_memory_error;
   m_di.print_address_func = dis_asm_print_address;
index d3642d8ca0106eb3c0012bb88efdc2e80433a858..f6de33e3db8118eb1a918d45970c3edffb1ad73d 100644 (file)
@@ -82,6 +82,9 @@ private:
      non-memory error.  */
   gdb::optional<CORE_ADDR> m_err_memaddr;
 
+  static int dis_asm_fprintf (void *stream, const char *format, ...)
+    ATTRIBUTE_PRINTF(2,3);
+
   static int dis_asm_read_memory (bfd_vma memaddr, gdb_byte *myaddr,
                                  unsigned int len,
                                  struct disassemble_info *info);