aboutsummaryrefslogtreecommitdiff
path: root/bfd/libcoff.h
diff options
context:
space:
mode:
authorOleg Tolmatcev <oleg.tolmatcev@gmail.com>2023-05-16 14:25:32 +0100
committerNick Clifton <nickc@redhat.com>2023-05-16 14:25:32 +0100
commit0e759f232b6def277d4ae3f2d8bccfe6e34d6034 (patch)
treeecf626fa9cad39ed53b9582ad5143f68c47491ed /bfd/libcoff.h
parent73eff1cbd3e35f9f3ea3f69d145aa74c57043953 (diff)
downloadgdb-0e759f232b6def277d4ae3f2d8bccfe6e34d6034.zip
gdb-0e759f232b6def277d4ae3f2d8bccfe6e34d6034.tar.gz
gdb-0e759f232b6def277d4ae3f2d8bccfe6e34d6034.tar.bz2
Add section caches to coff_data_type
* libcoff-in.h (struct coff_tdata): Add section_by_index and section_by_target_index hash tables. * libcoff.h: Regenerate. * coffcode.h (htab_hash_section_index): New function. (htab_eq_section_index): New function. (htab_hash_section_target_index): New function. (htab_eq_section_target_index): New function. (coff_mkobject_hool): Create the hash tables. * peicode.h: Add the same new functions. (pe_mkobject_hook): Create the hash tables. * coff-x86_64.c (coff_amd64_rtype_to_howto): Use the new tables to speed up lookups. * coffgen.c (coff_section_from_bfd_index): Likewise. (_bfd_coff_close_and_cleanup): Delete the hash tables.
Diffstat (limited to 'bfd/libcoff.h')
-rw-r--r--bfd/libcoff.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/bfd/libcoff.h b/bfd/libcoff.h
index 235d5c3..1a8d930 100644
--- a/bfd/libcoff.h
+++ b/bfd/libcoff.h
@@ -28,6 +28,7 @@
#include "bfdlink.h"
#include "coff-bfd.h"
+#include "hashtab.h"
#ifdef __cplusplus
extern "C" {
@@ -133,6 +134,13 @@ typedef struct coff_tdata
COFF object into memory. */
char * stub;
bfd_size_type stub_size;
+
+ /* Hash table containing sections by target index. */
+ htab_t section_by_target_index;
+
+ /* Hash table containing sections by index. */
+ htab_t section_by_index;
+
} coff_data_type;
/* Tdata for pe image files. */