ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.

* ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.

	* hashtab.h (htab_traverse_noresize): Declare.

	* hashtab.c (htab_traverse_noresize): Break out from ...
	* hashtab.c (htab_traverse): ... here.

From-SVN: r64496
This commit is contained in:
Jan Hubicka 2003-03-17 18:59:58 +01:00 committed by Jan Hubicka
parent ec20aa6ccf
commit dbccdc4211
6 changed files with 34 additions and 5 deletions

View File

@ -1,3 +1,7 @@
Mon Mar 17 18:57:01 CET 2003 Jan Hubicka <jh@suse.cz>
* ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
2003-03-17 Olivier Hainque <hainque@act-europe.fr>
* function.c (assign_parms): For a struct value address passed as

View File

@ -113,7 +113,7 @@ ggc_mark_roots ()
if (*cti->base)
{
ggc_set_mark (*cti->base);
htab_traverse (*cti->base, ggc_htab_delete, (PTR) cti);
htab_traverse_noresize (*cti->base, ggc_htab_delete, (PTR) cti);
ggc_set_mark ((*cti->base)->entries);
}
}

View File

@ -1,3 +1,7 @@
2003-03-17 Jan Hubicka <jh@suse.cz>
* hashtab.h (htab_traverse_noresize): Declare.
2003-02-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* libiberty.h: Document return value of physmem routines.

View File

@ -168,6 +168,7 @@ extern void htab_clear_slot PARAMS ((htab_t, void **));
extern void htab_remove_elt PARAMS ((htab_t, void *));
extern void htab_traverse PARAMS ((htab_t, htab_trav, void *));
extern void htab_traverse_noresize PARAMS ((htab_t, htab_trav, void *));
extern size_t htab_size PARAMS ((htab_t));
extern size_t htab_elements PARAMS ((htab_t));

View File

@ -1,3 +1,8 @@
2003-17-03 Jan Hubicka <jh@suse.cz>
* hashtab.c (htab_traverse_noresize): Break out from ...
* hashtab.c (htab_traverse): ... here.
2003-12-03 Jan Hubicka <jh@suse.cz>
* hashtab.c (htab_expand): Fix warning.

View File

@ -603,7 +603,7 @@ htab_clear_slot (htab, slot)
argument. */
void
htab_traverse (htab, callback, info)
htab_traverse_noresize (htab, callback, info)
htab_t htab;
htab_trav callback;
PTR info;
@ -611,9 +611,6 @@ htab_traverse (htab, callback, info)
PTR *slot;
PTR *limit;
if ((htab->n_elements - htab->n_deleted) * 8 < htab->size)
htab_expand (htab);
slot = htab->entries;
limit = slot + htab->size;
@ -628,6 +625,24 @@ htab_traverse (htab, callback, info)
while (++slot < limit);
}
/* Like htab_traverse_noresize, but does resize the table when it is
too empty to improve effectivity of subsequent calls. */
void
htab_traverse (htab, callback, info)
htab_t htab;
htab_trav callback;
PTR info;
{
PTR *slot;
PTR *limit;
if ((htab->n_elements - htab->n_deleted) * 8 < htab->size)
htab_expand (htab);
htab_traverse_noresize (htab, callback, info);
}
/* Return the current size of given hash table. */
size_t