From: Timm Bäder <tbae...@redhat.com>

Get rid of the nested functions

Signed-off-by: Timm Bäder <tbae...@redhat.com>
---
 src/addr2line.c | 47 ++++++++++++++++++++++++++---------------------
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git a/src/addr2line.c b/src/addr2line.c
index ea01c1be..34945046 100644
--- a/src/addr2line.c
+++ b/src/addr2line.c
@@ -598,6 +598,26 @@ get_addr_width (Dwfl_Module *mod)
   return width;
 }
 
+static inline void
+show_note (int (*get) (Dwarf_Line *, bool *),
+          Dwarf_Line *info,
+          const char *note)
+{
+  bool flag;
+  if ((*get) (info, &flag) == 0 && flag)
+    fputs (note, stdout);
+}
+
+static inline void
+show_int (int (*get) (Dwarf_Line *, unsigned int *),
+         Dwarf_Line *info,
+         const char *name)
+{
+  unsigned int val;
+  if ((*get) (info, &val) == 0 && val != 0)
+    printf (" (%s %u)", name, val);
+}
+
 static int
 handle_address (const char *string, Dwfl *dwfl)
 {
@@ -692,27 +712,12 @@ handle_address (const char *string, Dwfl *dwfl)
          Dwarf_Line *info = dwfl_dwarf_line (line, &bias);
          assert (info != NULL);
 
-         inline void show (int (*get) (Dwarf_Line *, bool *),
-                           const char *note)
-         {
-           bool flag;
-           if ((*get) (info, &flag) == 0 && flag)
-             fputs (note, stdout);
-         }
-         inline void show_int (int (*get) (Dwarf_Line *, unsigned int *),
-                               const char *name)
-         {
-           unsigned int val;
-           if ((*get) (info, &val) == 0 && val != 0)
-             printf (" (%s %u)", name, val);
-         }
-
-         show (&dwarf_linebeginstatement, " (is_stmt)");
-         show (&dwarf_lineblock, " (basic_block)");
-         show (&dwarf_lineprologueend, " (prologue_end)");
-         show (&dwarf_lineepiloguebegin, " (epilogue_begin)");
-         show_int (&dwarf_lineisa, "isa");
-         show_int (&dwarf_linediscriminator, "discriminator");
+         show_note (&dwarf_linebeginstatement, info, " (is_stmt)");
+         show_note (&dwarf_lineblock, info, " (basic_block)");
+         show_note (&dwarf_lineprologueend, info, " (prologue_end)");
+         show_note (&dwarf_lineepiloguebegin, info, " (epilogue_begin)");
+         show_int (&dwarf_lineisa, info, "isa");
+         show_int (&dwarf_linediscriminator, info, "discriminator");
        }
       putchar ('\n');
     }
-- 
2.26.2

Reply via email to