From 381d966d9f2b9737abf9568810a86fb3a32dfa0c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Timm=20B=C3=A4der?= Date: Mon, 23 Nov 2020 13:27:01 +0100 Subject: [PATCH] segment_report_module: Get rid of segment_read() MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Just inline the memory_callback call everywhere segmenty_read was used. Signed-off-by: Timm Bäder --- libdwfl/ChangeLog | 5 +++++ libdwfl/dwfl_segment_report_module.c | 26 +++++++++++--------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/libdwfl/ChangeLog b/libdwfl/ChangeLog index ecd87d3a9..3f8da55c4 100644 --- a/libdwfl/ChangeLog +++ b/libdwfl/ChangeLog @@ -1,3 +1,8 @@ +2020-11-23 Timm Bäder + + * segment_report_module.c (dwfl_segment_report_module): Remove + segment_read, call memory_callback directly. + 2020-11-19 Andreas Krebbel * linux-pid-attach.c (pid_memory_read): Shift the upper 4 bytes diff --git a/libdwfl/dwfl_segment_report_module.c b/libdwfl/dwfl_segment_report_module.c index c7725002f..a0d8d713d 100644 --- a/libdwfl/dwfl_segment_report_module.c +++ b/libdwfl/dwfl_segment_report_module.c @@ -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) -- 2.47.2