[1/5] gdb: make disassembler fprintf callback a static member function

Message ID 132d6990ef6b5bf22cb7c45974f69e10c73199ba.1634162144.git.andrew.burgess@embecosm.com
State New
Headers show
Series
  • Add Python API for the disassembler
Related show

Commit Message

Andrew Burgess Oct. 13, 2021, 9:59 p.m.
The disassemble_info structure has four callbacks, we have three of
them as static member functions within gdb_disassembler, the forth is
just a global static function.

However, this forth 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 | 31 +++++++++++++++----------------
 gdb/disasm.h |  3 +++
 2 files changed, 18 insertions(+), 16 deletions(-)

-- 
2.25.4

Patch

diff --git a/gdb/disasm.c b/gdb/disasm.c
index dc6426718bb..c045dfc94a6 100644
--- a/gdb/disasm.c
+++ b/gdb/disasm.c
@@ -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;
diff --git a/gdb/disasm.h b/gdb/disasm.h
index d3642d8ca01..f6de33e3db8 100644
--- a/gdb/disasm.h
+++ b/gdb/disasm.h
@@ -82,6 +82,9 @@  class gdb_disassembler
      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);