diff options
author | Simon Marchi <simon.marchi@polymtl.ca> | 2020-09-14 14:02:30 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@efficios.com> | 2020-09-14 14:02:30 -0400 |
commit | 898066264058f68c4dd26e82e1310db305177c8e (patch) | |
tree | fc0b04a903748034dcf5fabf9b650636df7b4725 /gdb/psymtab.c | |
parent | 2ddc8f011a497d710737ab7637dbf88cbe1398a1 (diff) | |
download | gdb-898066264058f68c4dd26e82e1310db305177c8e.zip gdb-898066264058f68c4dd26e82e1310db305177c8e.tar.gz gdb-898066264058f68c4dd26e82e1310db305177c8e.tar.bz2 |
gdb: turn gdb::bcache's function pointers into virtual methods
The two function pointers optionally passed to gdb::bcache are very good
candidates to be turned into virtual methods, this patch does that in
the most straightforward / unsurprising way.
gdb/ChangeLog:
* bcache.h (struct bcache) <bcache>: Remove constructor.
<m_hash_function, m_compare_function>: Remove.
<~bcache>: Make virtual.
<compare>: Remove static method, introduce virtual method.
<default_hash>: Remove.
<hash>: New virtual method.
* bcache.c (bcache::expand_hash_table): Update.
(bcache::insert): Update.
(bcache::hash): New.
(bcache::compare): Update comment and parameter names.
* gdbtypes.c (types_deeply_equal): Update.
* psymtab.h (struct psymbol_bcache): New struct.
(class psymtab_storage) <psymtab_storage>: Make default.
<psymbol_cache>: Change type to psymbol_bcache.
* psymtab.c (psymtab_storage::psymtab_storage): Remove.
(psymbol_hash): Change to...
(psymbol_bcache::hash): ... this.
(psymbol_compare): Change to...
(psymbol_bcache::compare): ... this.
Change-Id: I41d578e61de8ac1163461a28fbd220d1f855e372
Diffstat (limited to 'gdb/psymtab.c')
-rw-r--r-- | gdb/psymtab.c | 27 |
1 files changed, 6 insertions, 21 deletions
diff --git a/gdb/psymtab.c b/gdb/psymtab.c index 59db469..5791cd1 100644 --- a/gdb/psymtab.c +++ b/gdb/psymtab.c @@ -53,16 +53,6 @@ static struct partial_symbol *find_pc_sect_psymbol (struct objfile *, static struct compunit_symtab *psymtab_to_symtab (struct objfile *objfile, struct partial_symtab *pst); - - -static unsigned long psymbol_hash (const void *addr, int length); -static int psymbol_compare (const void *addr1, const void *addr2, int length); - -psymtab_storage::psymtab_storage () - : psymbol_cache (psymbol_hash, psymbol_compare) -{ -} - psymtab_storage::~psymtab_storage () { partial_symtab *iter = psymtabs; @@ -1537,13 +1527,10 @@ end_psymtab_common (struct objfile *objfile, struct partial_symtab *pst) sort_pst_symbols (objfile, pst); } -/* Calculate a hash code for the given partial symbol. The hash is - calculated using the symbol's value, language, domain, class - and name. These are the values which are set by - add_psymbol_to_bcache. */ +/* See psymtab.h. */ -static unsigned long -psymbol_hash (const void *addr, int length) +unsigned long +psymbol_bcache::hash (const void *addr, int length) { unsigned long h = 0; struct partial_symbol *psymbol = (struct partial_symbol *) addr; @@ -1562,12 +1549,10 @@ psymbol_hash (const void *addr, int length) return h; } -/* Returns true if the symbol at addr1 equals the symbol at addr2. - For the comparison this function uses a symbols value, - language, domain, class and name. */ +/* See psymtab.h. */ -static int -psymbol_compare (const void *addr1, const void *addr2, int length) +int +psymbol_bcache::compare (const void *addr1, const void *addr2, int length) { struct partial_symbol *sym1 = (struct partial_symbol *) addr1; struct partial_symbol *sym2 = (struct partial_symbol *) addr2; |