mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-23 18:14:13 +08:00
merge from gcc
This commit is contained in:
parent
9f2e1e6389
commit
a7d421b815
@ -1,3 +1,9 @@
|
||||
2006-07-27 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
PR rtl-optimization/28071
|
||||
* hashtab.c (htab_empty): Clear out n_deleted/n_elements;
|
||||
downsize the hashtable.
|
||||
|
||||
2006-07-04 Peter O'Gorman <peter@pogma.com>
|
||||
|
||||
* Makefile.in: chmod 644 before ranlib during install.
|
||||
|
@ -421,7 +421,28 @@ htab_empty (htab_t htab)
|
||||
if (entries[i] != HTAB_EMPTY_ENTRY && entries[i] != HTAB_DELETED_ENTRY)
|
||||
(*htab->del_f) (entries[i]);
|
||||
|
||||
memset (entries, 0, size * sizeof (PTR));
|
||||
/* Instead of clearing megabyte, downsize the table. */
|
||||
if (size > 1024*1024 / sizeof (PTR))
|
||||
{
|
||||
int nindex = higher_prime_index (1024 / sizeof (PTR));
|
||||
int nsize = prime_tab[nindex].prime;
|
||||
|
||||
if (htab->free_f != NULL)
|
||||
(*htab->free_f) (htab->entries);
|
||||
else if (htab->free_with_arg_f != NULL)
|
||||
(*htab->free_with_arg_f) (htab->alloc_arg, htab->entries);
|
||||
if (htab->alloc_with_arg_f != NULL)
|
||||
htab->entries = (PTR *) (*htab->alloc_with_arg_f) (htab->alloc_arg, nsize,
|
||||
sizeof (PTR *));
|
||||
else
|
||||
htab->entries = (PTR *) (*htab->alloc_f) (nsize, sizeof (PTR *));
|
||||
htab->size = nsize;
|
||||
htab->size_prime_index = nindex;
|
||||
}
|
||||
else
|
||||
memset (entries, 0, size * sizeof (PTR));
|
||||
htab->n_deleted = 0;
|
||||
htab->n_elements = 0;
|
||||
}
|
||||
|
||||
/* Similar to htab_find_slot, but without several unwanted side effects:
|
||||
|
Loading…
Reference in New Issue
Block a user