X-Git-Url: http://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fhtable%2Fhtable.c;h=a15c54d7958a6b779c7e3b7c7b951eb360ef0409;hp=bbd4fa96e587c64a04446756787bd163ad4dc3c8;hb=ab3df365ce9bcd76379cda8d3a7c188baa3e0a05;hpb=d3104024f71cf4f89195787add6c7ac381d62f40 diff --git a/ccan/htable/htable.c b/ccan/htable/htable.c index bbd4fa96..a15c54d7 100644 --- a/ccan/htable/htable.c +++ b/ccan/htable/htable.c @@ -66,8 +66,8 @@ struct htable *htable_new(size_t (*rehash)(const void *elem, void *priv), ht->priv = priv; ht->elems = 0; ht->deleted = 0; - ht->max = (1 << ht->bits) * 2 / 3; - ht->max_with_deleted = (1 << ht->bits) * 4 / 5; + ht->max = ((size_t)1 << ht->bits) * 3 / 4; + ht->max_with_deleted = ((size_t)1 << ht->bits) * 9 / 10; /* This guarantees we enter update_common first add. */ ht->common_mask = -1; ht->common_bits = 0; @@ -155,7 +155,7 @@ static void ht_add(struct htable *ht, const void *new, size_t h) ht->table[i] = make_hval(ht, new, get_hash_ptr_bits(ht, h)|perfect); } -static COLD_ATTRIBUTE bool double_table(struct htable *ht) +static COLD bool double_table(struct htable *ht) { unsigned int i; size_t oldnum = (size_t)1 << ht->bits; @@ -192,7 +192,7 @@ static COLD_ATTRIBUTE bool double_table(struct htable *ht) return true; } -static COLD_ATTRIBUTE void rehash_table(struct htable *ht) +static COLD void rehash_table(struct htable *ht) { size_t start, i; uintptr_t e; @@ -217,7 +217,7 @@ static COLD_ATTRIBUTE void rehash_table(struct htable *ht) } /* We stole some bits, now we need to put them back... */ -static COLD_ATTRIBUTE void update_common(struct htable *ht, const void *p) +static COLD void update_common(struct htable *ht, const void *p) { unsigned int i; uintptr_t maskdiff, bitsdiff;