mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-02 16:23:56 +08:00
name-lookup.c (free_binding_entry): fix where the GTY markers are.
* name-lookup.c (free_binding_entry): fix where the GTY markers are. (binding_entry_make): Make entry->chain NULL after getting an entry. fix the spelling of chain in a comment. (binding_table_free): speed up by having temporary variable. (binding_table_new): set table->chain to be NULL after allocating a table. (cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and set binding->previous to NULL after getting an binding for speed. From-SVN: r66948
This commit is contained in:
parent
1c745a0269
commit
7e8f3096dc
@ -1,3 +1,14 @@
|
||||
2003-05-18 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
* name-lookup.c (free_binding_entry): fix where the GTY markers are.
|
||||
(binding_entry_make): Make entry->chain NULL after getting an entry.
|
||||
fix the spelling of chain in a comment.
|
||||
(binding_table_free): speed up by having temporary variable.
|
||||
(binding_table_new): set table->chain to be NULL after allocating
|
||||
a table.
|
||||
(cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and set
|
||||
binding->previous to NULL after getting an binding for speed.
|
||||
|
||||
2003-05-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
|
||||
|
||||
* cp-tree.h (struct lang_type_class): Replace data member tags
|
||||
|
@ -34,7 +34,7 @@ Boston, MA 02111-1307, USA. */
|
||||
#define ENTRY_INDEX(HASH, COUNT) (((HASH) >> 3) & ((COUNT) - 1))
|
||||
|
||||
/* A free list of "binding_entry"s awaiting for re-use. */
|
||||
static binding_entry GTY((deletable(""))) free_binding_entry;
|
||||
static GTY((deletable(""))) binding_entry free_binding_entry = NULL;
|
||||
|
||||
/* Create a binding_entry object for (NAME, TYPE). */
|
||||
static inline binding_entry
|
||||
@ -52,6 +52,7 @@ binding_entry_make (tree name, tree type)
|
||||
|
||||
entry->name = name;
|
||||
entry->type = type;
|
||||
entry->chain = NULL;
|
||||
|
||||
return entry;
|
||||
}
|
||||
@ -72,7 +73,7 @@ struct binding_table_s GTY(())
|
||||
binding_entry * GTY((length ("%h.chain_count"))) chain;
|
||||
|
||||
/* The number of chains in this table. This is the length of the
|
||||
the member "chaiin" considered as an array. */
|
||||
the member "chain" considered as an array. */
|
||||
size_t chain_count;
|
||||
|
||||
/* Number of "binding_entry"s in this table. */
|
||||
@ -99,12 +100,15 @@ binding_table_free (binding_table table)
|
||||
|
||||
for (i = 0; i < table->chain_count; ++i)
|
||||
{
|
||||
while (table->chain[i] != NULL)
|
||||
binding_entry temp = table->chain[i];
|
||||
while (temp != NULL)
|
||||
{
|
||||
binding_entry entry = table->chain[i];
|
||||
table->chain[i] = entry->chain;
|
||||
binding_entry entry = temp;
|
||||
temp = entry->chain;
|
||||
entry->chain = NULL; // just be sure
|
||||
binding_entry_free (entry);
|
||||
}
|
||||
table->chain[i] = temp;
|
||||
}
|
||||
table->entry_count = 0;
|
||||
}
|
||||
@ -114,6 +118,7 @@ binding_table
|
||||
binding_table_new (size_t chain_count)
|
||||
{
|
||||
binding_table table = ggc_alloc (sizeof (struct binding_table_s));
|
||||
table->chain = NULL;
|
||||
binding_table_construct (table, chain_count);
|
||||
return table;
|
||||
}
|
||||
@ -277,10 +282,11 @@ cxx_binding_make (tree value, tree type)
|
||||
free_bindings = binding->previous;
|
||||
}
|
||||
else
|
||||
binding = ggc_alloc_cleared (sizeof (cxx_binding));
|
||||
binding = ggc_alloc (sizeof (cxx_binding));
|
||||
|
||||
binding->value = value;
|
||||
binding->type = type;
|
||||
binding->previous = NULL;
|
||||
|
||||
return binding;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user