diff options
author | Daniel Berlin <dberlin@dberlin.org> | 2000-11-08 02:50:51 +0000 |
---|---|---|
committer | Daniel Berlin <dberlin@dberlin.org> | 2000-11-08 02:50:51 +0000 |
commit | b3810801a5ed74b6404b8e2e31987b77fc4971b8 (patch) | |
tree | 0d3a2d093391eb400ec439d08c9489c0ee58e526 | |
parent | c940e6fcdf5e4b6572e6ec0d25fb774d9b9038e8 (diff) | |
download | gdb-b3810801a5ed74b6404b8e2e31987b77fc4971b8.zip gdb-b3810801a5ed74b6404b8e2e31987b77fc4971b8.tar.gz gdb-b3810801a5ed74b6404b8e2e31987b77fc4971b8.tar.bz2 |
2000-11-07 Daniel Berlin <dberlin@redhat.com>
* dwarf2read.c: Revert June 5th change for caching of types,
as per Jim Blandy's request.
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/dwarf2read.c | 41 |
2 files changed, 7 insertions, 39 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4812ad0..baca78a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2000-11-07 Daniel Berlin <dberlin@redhat.com> + + * dwarf2read.c: Revert June 5th change for caching of types, + as per Jim Blandy's request. + 2000-11-06 Fernando Nasser <fnasser@totem.toronto.redhat.com> * wrapper.c (gdb_value_assign): New function. Longjump-free diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index c215c99..cb123ef 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -275,11 +275,6 @@ static struct abbrev_info *dwarf2_abbrevs[ABBREV_HASH_SIZE]; static struct die_info *die_ref_table[REF_HASH_SIZE]; -#ifndef TYPE_HASH_SIZE -#define TYPE_HASH_SIZE 4096 -#endif -static struct type *dwarf2_cached_types[TYPE_HASH_SIZE]; - /* Obstack for allocating temporary storage used during symbol reading. */ static struct obstack dwarf2_tmp_obstack; @@ -2901,7 +2896,7 @@ read_comp_unit (char *info_ptr, bfd *abfd, char *cur_ptr; int nesting_level; - /* Reset die reference table and cached types table; we are + /* Reset die reference table; we are building new ones now. */ dwarf2_empty_hash_tables (); @@ -4528,38 +4523,7 @@ tag_type_to_type (struct die_info *die, struct objfile *objfile, } else { - struct attribute *attr; - attr = dwarf_attr (die, DW_AT_name); - if (attr && DW_STRING (attr)) - { - char *attrname=DW_STRING (attr); - unsigned long hashval=hash(attrname, strlen(attrname)) % TYPE_HASH_SIZE; - - if (dwarf2_cached_types[hashval] != NULL) - { - const char *nameoftype; - nameoftype = TYPE_NAME(dwarf2_cached_types[hashval]) == NULL ? TYPE_TAG_NAME(dwarf2_cached_types[hashval]) : TYPE_NAME(dwarf2_cached_types[hashval]); - if (strcmp(attrname, nameoftype) == 0) - { - die->type=dwarf2_cached_types[hashval]; - } - else - { - read_type_die (die, objfile, cu_header); - dwarf2_cached_types[hashval] = die->type; - } - } - else - { - read_type_die (die, objfile, cu_header); - dwarf2_cached_types[hashval] = die->type; - } - } - else - { - read_type_die (die, objfile, cu_header); - } - + read_type_die (die, objfile, cu_header); if (!die->type) { dump_die (die); @@ -5606,7 +5570,6 @@ static void dwarf2_empty_hash_tables (void) { memset (die_ref_table, 0, sizeof (die_ref_table)); - memset (dwarf2_cached_types, 0, sizeof(dwarf2_cached_types)); } static unsigned int |