diff options
author | Jakub Jelinek <jakub@redhat.com> | 2009-06-21 11:37:31 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2009-06-21 11:37:31 +0200 |
commit | a46f975bee74ff08eb97aac61f2fb81faa2c173f (patch) | |
tree | 78044b4964bd0f9ad698377fc65677426b49252f /libiberty/hashtab.c | |
parent | 3d25028c8fc3d8708cb1e1542689ab89a6c2aeed (diff) | |
download | gcc-a46f975bee74ff08eb97aac61f2fb81faa2c173f.zip gcc-a46f975bee74ff08eb97aac61f2fb81faa2c173f.tar.gz gcc-a46f975bee74ff08eb97aac61f2fb81faa2c173f.tar.bz2 |
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
Diffstat (limited to 'libiberty/hashtab.c')
-rw-r--r-- | libiberty/hashtab.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libiberty/hashtab.c b/libiberty/hashtab.c index bf34a6d..3e64921 100644 --- a/libiberty/hashtab.c +++ b/libiberty/hashtab.c @@ -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); |