aboutsummaryrefslogtreecommitdiff
path: root/bfd/pei-x86_64.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2020-12-15 22:09:30 +1030
committerAlan Modra <amodra@gmail.com>2020-12-16 15:17:52 +1030
commitcf7a3c01d82abdf110ef85ab770e5997d8ac28ac (patch)
tree13ec1df3179075cf8bf216fd986387978ffddc73 /bfd/pei-x86_64.c
parenta33fc9aed4b3b4384df63850c6fc9046ecbd97f4 (diff)
downloadgdb-cf7a3c01d82abdf110ef85ab770e5997d8ac28ac.zip
gdb-cf7a3c01d82abdf110ef85ab770e5997d8ac28ac.tar.gz
gdb-cf7a3c01d82abdf110ef85ab770e5997d8ac28ac.tar.bz2
Lose some COFF/PE static vars, and peicode.h constify
This patch tidies some COFF and PE code that unnecessarily used static variables to communicate between functions. * coffcode.h (pelength, peheader): Delete static variables. (coff_apply_checksum): Instead, define them as auto vars, and pass.. (coff_read_word, coff_compute_checksum): ..to here. Delete unnecessary forward declarations. * pei-x86_64.c (pdata_count): Delete static variable. (struct pex64_paps): New. (pex64_print_all_pdata_sections, pex64_bfd_print_pdata): Pass a pex64_paps for counting. * peicode.h (jtab): Constify.
Diffstat (limited to 'bfd/pei-x86_64.c')
-rw-r--r--bfd/pei-x86_64.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/bfd/pei-x86_64.c b/bfd/pei-x86_64.c
index 7af0d49..b1259a0 100644
--- a/bfd/pei-x86_64.c
+++ b/bfd/pei-x86_64.c
@@ -820,20 +820,25 @@ pex64_bfd_print_pdata_section (bfd *abfd, void *vfile, asection *pdata_section)
return TRUE;
}
-/* Static counter of number of found pdata sections. */
-static bfd_boolean pdata_count;
+struct pex64_paps
+{
+ void *obj;
+ /* Number of found pdata sections. */
+ unsigned int pdata_count;
+};
/* Functionn prototype. */
bfd_boolean pex64_bfd_print_pdata (bfd *, void *);
/* Helper function for bfd_map_over_section. */
static void
-pex64_print_all_pdata_sections (bfd *abfd, asection *pdata, void *obj)
+pex64_print_all_pdata_sections (bfd *abfd, asection *pdata, void *arg)
{
+ struct pex64_paps *paps = arg;
if (CONST_STRNEQ (pdata->name, ".pdata"))
{
- if (pex64_bfd_print_pdata_section (abfd, obj, pdata))
- pdata_count++;
+ if (pex64_bfd_print_pdata_section (abfd, paps->obj, pdata))
+ paps->pdata_count++;
}
}
@@ -841,13 +846,15 @@ bfd_boolean
pex64_bfd_print_pdata (bfd *abfd, void *vfile)
{
asection *pdata_section = bfd_get_section_by_name (abfd, ".pdata");
+ struct pex64_paps paps;
if (pdata_section)
return pex64_bfd_print_pdata_section (abfd, vfile, pdata_section);
- pdata_count = 0;
- bfd_map_over_sections (abfd, pex64_print_all_pdata_sections, vfile);
- return (pdata_count > 0);
+ paps.obj = vfile;
+ paps.pdata_count = 0;
+ bfd_map_over_sections (abfd, pex64_print_all_pdata_sections, &paps);
+ return paps.pdata_count != 0;
}
#define bfd_pe_print_pdata pex64_bfd_print_pdata