]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
segment_report_module: Get rid of segment_read()
authorTimm Bäder <tbaeder@redhat.com>
Mon, 23 Nov 2020 12:27:01 +0000 (13:27 +0100)
committerMark Wielaard <mark@klomp.org>
Wed, 25 Nov 2020 15:13:43 +0000 (16:13 +0100)
Just inline the memory_callback call everywhere segmenty_read was used.

Signed-off-by: Timm Bäder <tbaeder@redhat.com>
libdwfl/ChangeLog
libdwfl/dwfl_segment_report_module.c

index ecd87d3a96952c01b3aadc7b9fe79911b86dfdbc..3f8da55c486bd3721c477faaf38e5ade460889e5 100644 (file)
@@ -1,3 +1,8 @@
+2020-11-23  Timm Bäder  <tbaeder@redhat.com>
+
+       * segment_report_module.c (dwfl_segment_report_module): Remove
+       segment_read, call memory_callback directly.
+
 2020-11-19  Andreas Krebbel  <krebbel@linux.ibm.com>
 
        * linux-pid-attach.c (pid_memory_read): Shift the upper 4 bytes
index c7725002f8e04a5e3f9ff67256b1488203caac46..a0d8d713dfbf7fccdf07439710768fa5a7e09993 100644 (file)
@@ -257,18 +257,11 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
 
   GElf_Addr start = dwfl->lookup_addr[segment];
 
-  inline bool segment_read (int segndx,
-                           void **buffer, size_t *buffer_available,
-                           GElf_Addr addr, size_t minread)
-  {
-    return ! (*memory_callback) (dwfl, segndx, buffer, buffer_available,
-                                addr, minread, memory_callback_arg);
-  }
-
   inline void release_buffer (void **buffer, size_t *buffer_available)
   {
     if (*buffer != NULL)
-      (void) segment_read (-1, buffer, buffer_available, 0, 0);
+      (*memory_callback) (dwfl, -1, buffer, buffer_available, 0, 0,
+                         memory_callback_arg);
   }
 
   /* First read in the file header and check its sanity.  */
@@ -282,8 +275,8 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
      here so we can always safely free it.  */
   void *phdrsp = NULL;
 
-  if (segment_read (ndx, &buffer, &buffer_available,
-                   start, sizeof (Elf64_Ehdr))
+  if (! (*memory_callback) (dwfl, ndx, &buffer, &buffer_available,
+                           start, sizeof (Elf64_Ehdr), memory_callback_arg)
       || memcmp (buffer, ELFMAG, SELFMAG) != 0)
     goto out;
 
@@ -301,8 +294,10 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
       {
        *data = NULL;
        *data_size = filesz;
-       return segment_read (addr_segndx (dwfl, segment, vaddr, false),
-                            data, data_size, vaddr, filesz);
+       return ! (*memory_callback) (dwfl, addr_segndx (dwfl, segment,
+                                                       vaddr, false),
+                                    data, data_size, vaddr, filesz,
+                                    memory_callback_arg);
       }
 
     /* We already have this whole note segment from our initial read.  */
@@ -908,8 +903,9 @@ dwfl_segment_report_module (Dwfl *dwfl, int ndx, const char *name,
       {
        void *into = contents + offset;
        size_t read_size = size;
-       (void) segment_read (addr_segndx (dwfl, segment, vaddr, false),
-                            &into, &read_size, vaddr, size);
+       (*memory_callback) (dwfl, addr_segndx (dwfl, segment, vaddr, false),
+                           &into, &read_size, vaddr, size,
+                           memory_callback_arg);
       }
 
       if (contiguous < file_trimmed_end)