From 9227b5eb3d7250fbab15403782b3187f2b9e937c Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Tue, 7 Mar 2000 04:33:52 +0000 Subject: From Tom Tromey and Keith Seitz : * minsyms.c: #include , for msymbol_hash_iw. (compact_minimal_symbols): Added `objfile' argument. Put symbols in the objfile's hash table. (install_minimal_symbols): Put symbols in the objfile's demangled hash table. (lookup_minimal_symbol): Use hash table to find symbol in objfile. (msymbol_hash_iw, msymbol_hash, add_minsym_to_hash_table): New functions. (prim_record_minimal_symbol_and_info): Initialize the hash link fields of the new minimal symbol. * symtab.h (struct minimal_symbol): New fields `hash_next', `demangled_hash_next'. (msymbol_hash_iw, msymbol_hash, add_minsym_to_hash_table): Declare. * objfiles.h (MINIMAL_SYMBOL_HASH_SIZE): New define. (struct objfile): New fields `msymbol_hash', `msymbol_demangled_hash'. --- gdb/objfiles.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'gdb/objfiles.h') diff --git a/gdb/objfiles.h b/gdb/objfiles.h index 98d4575..d1bd4da 100644 --- a/gdb/objfiles.h +++ b/gdb/objfiles.h @@ -1,5 +1,5 @@ /* Definitions for symbol file management in GDB. - Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc. + Copyright (C) 1992, 1993, 1994, 1995, 1999 Free Software Foundation, Inc. This file is part of GDB. @@ -200,6 +200,9 @@ struct objstats extern void print_objfile_statistics PARAMS ((void)); extern void print_symbol_bcache_statistics PARAMS ((void)); +/* Number of entries in the minimal symbol hash table. */ +#define MINIMAL_SYMBOL_HASH_SIZE 349 + /* Master structure for keeping track of each file from which gdb reads symbols. There are several ways these get allocated: 1. The main symbol file, symfile_objfile, set by the symbol-file command, @@ -292,6 +295,15 @@ struct objfile struct minimal_symbol *msymbols; int minimal_symbol_count; + /* This is a hash table used to index the minimal symbols by name. */ + + struct minimal_symbol *msymbol_hash[MINIMAL_SYMBOL_HASH_SIZE]; + + /* This hash table is used to index the minimal symbols by their + demangled names. */ + + struct minimal_symbol *msymbol_demangled_hash[MINIMAL_SYMBOL_HASH_SIZE]; + /* For object file formats which don't specify fundamental types, gdb can create such types. For now, it maintains a vector of pointers to these internally created fundamental types on a per objfile basis, -- cgit v1.1