aboutsummaryrefslogtreecommitdiff
path: root/gdb/psymtab.c
diff options
context:
space:
mode:
authorPaul N. Hilfinger <hilfinger@adacore.com>2010-10-04 06:34:40 +0000
committerPaul N. Hilfinger <hilfinger@adacore.com>2010-10-04 06:34:40 +0000
commit73589123891e1c5ae9ee9c6e359a2a37133200de (patch)
tree7f90edf3a2d7be4d35354c784d7df3c78140b194 /gdb/psymtab.c
parent790c20f3f358afee041c54335081e4d877924ce3 (diff)
downloadgdb-73589123891e1c5ae9ee9c6e359a2a37133200de.zip
gdb-73589123891e1c5ae9ee9c6e359a2a37133200de.tar.gz
gdb-73589123891e1c5ae9ee9c6e359a2a37133200de.tar.bz2
Replace wild_match with faster version and modify its interface.
This new version of wild_match is comparable in speed to strcmp_iw, and has the same signature and same return value for equal names. gdb/ChangeLog: * ada-lang.c (wild_match): Reimplement. Change API to eliminate unused length argument, reverse arguments and make 0 the 'true' return value. (advance_wild_match): New auxiliary function for wild_match to improve readability. (ada_match_name, ada_add_block_symbols): Use new API for wild_match. * psymtab.c (ada_lookup_partial_symbol, map_ada_symtabs): Use new API for wild_match. * symfile.h (map_ada_symtabs): Modify declaration to use new API for wild_match. * dwarf2read.c (dw2_map_ada_symtabs): Ditto.
Diffstat (limited to 'gdb/psymtab.c')
-rw-r--r--gdb/psymtab.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gdb/psymtab.c b/gdb/psymtab.c
index 4aec16e..eac3e1a 100644
--- a/gdb/psymtab.c
+++ b/gdb/psymtab.c
@@ -974,7 +974,7 @@ find_symbol_file_from_partial (struct objfile *objfile, const char *name)
static struct partial_symbol *
ada_lookup_partial_symbol (struct partial_symtab *pst, const char *name,
int global, domain_enum namespace, int wild,
- int (*wild_match) (const char *, int, const char *),
+ int (*wild_match) (const char *, const char *),
int (*is_name_suffix) (const char *))
{
struct partial_symbol **start;
@@ -999,7 +999,7 @@ ada_lookup_partial_symbol (struct partial_symtab *pst, const char *name,
if (symbol_matches_domain (SYMBOL_LANGUAGE (psym),
SYMBOL_DOMAIN (psym), namespace)
- && (*wild_match) (name, name_len, SYMBOL_LINKAGE_NAME (psym)))
+ && (*wild_match) (SYMBOL_LINKAGE_NAME (psym), name) == 0)
return psym;
}
return NULL;
@@ -1112,7 +1112,7 @@ ada_lookup_partial_symbol (struct partial_symtab *pst, const char *name,
static void
map_ada_symtabs (struct objfile *objfile,
- int (*wild_match) (const char *, int, const char *),
+ int (*wild_match) (const char *, const char *),
int (*is_name_suffix) (const char *),
void (*callback) (struct objfile *, struct symtab *, void *),
const char *name, int global, domain_enum namespace, int wild,