hashtab.c (htab_traverse): Don't call htab_expand for nearly empty hashtabs with sizes 7, 13 or 31.

* hashtab.c (htab_traverse): Don't call htab_expand for
	nearly empty hashtabs with sizes 7, 13 or 31.

From-SVN: r148759
This commit is contained in:
Jakub Jelinek 2009-06-21 11:37:31 +02:00 committed by Jakub Jelinek
parent 3d25028c8f
commit a46f975bee
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2009-06-21 Jakub Jelinek <jakub@redhat.com>
* hashtab.c (htab_traverse): Don't call htab_expand for
nearly empty hashtabs with sizes 7, 13 or 31.
2009-06-16 Nick Clifton <nickc@redhat.com>
PR 10197

View File

@ -1,5 +1,5 @@
/* An expandable hash tables datatype.
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2009
Free Software Foundation, Inc.
Contributed by Vladimir Makarov (vmakarov@cygnus.com).
@ -759,7 +759,8 @@ htab_traverse_noresize (htab_t htab, htab_trav callback, PTR info)
void
htab_traverse (htab_t htab, htab_trav callback, PTR info)
{
if (htab_elements (htab) * 8 < htab_size (htab))
size_t size = htab_size (htab);
if (htab_elements (htab) * 8 < size && size > 32)
htab_expand (htab);
htab_traverse_noresize (htab, callback, info);