aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/hashtab.c
diff options
context:
space:
mode:
authorEliseo Martínez <eliseomarmol@gmail.com>2014-05-24 01:17:47 +0200
committerEliseo Martínez <eliseomarmol@gmail.com>2014-05-24 01:17:47 +0200
commitec89761e8a05fb93ed6bbde1055fbc866f7bce7e (patch)
treeb2efee00f796761bb7362489ea4ba3d17f378720 /src/nvim/hashtab.c
parent0c68623aca08fa84c7ed945bac7d5066de84d7f7 (diff)
downloadrneovim-ec89761e8a05fb93ed6bbde1055fbc866f7bce7e.tar.gz
rneovim-ec89761e8a05fb93ed6bbde1055fbc866f7bce7e.tar.bz2
rneovim-ec89761e8a05fb93ed6bbde1055fbc866f7bce7e.zip
Remove long_u: hashtab: Refactor long_u type.
hashtab.h: - hash_T: long_u -> size_t. In principle, a hash value could thought of as just an unsigned number without size semantics (uint32_t or uint64_t). But it is used as index at some places, and so, size_t is also eligible. Therea re some places where assignments occur between hash_T and size_t variables, in both directions. Therefore, if we define hash_T to be of a type having a different width than that of size_t, we will have an incorrect assignment somewhere that will require an assert/guard. So the most sensible option here seems to do hast_T to be size_t too. - hashtab_T.ht_mask: long_u -> hash_T. Masks are used to be combined with hash_T values, so they should be of the same type. hashtab.c: - hash_may_resize(): oldsize: long_u -> size_t. - hash_may_resize(): newsize: long_u -> size_t. - hash_may_resize(): newmask: long_u -> hash_T.
Diffstat (limited to 'src/nvim/hashtab.c')
-rw-r--r--src/nvim/hashtab.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/nvim/hashtab.c b/src/nvim/hashtab.c
index 664c4eaf92..3f5e4cf4a1 100644
--- a/src/nvim/hashtab.c
+++ b/src/nvim/hashtab.c
@@ -281,7 +281,7 @@ static int hash_may_resize(hashtab_T *ht, size_t minitems)
// removed items, so that they get cleaned up).
// Shrink the array when it's less than 1/5 full. When growing it is
// at least 1/4 full (avoids repeated grow-shrink operations)
- long_u oldsize = ht->ht_mask + 1;
+ size_t oldsize = ht->ht_mask + 1;
if ((ht->ht_filled * 3 < oldsize * 2) && (ht->ht_used > oldsize / 5)) {
return OK;
}
@@ -303,7 +303,7 @@ static int hash_may_resize(hashtab_T *ht, size_t minitems)
minsize = minitems * 3 / 2;
}
- long_u newsize = HT_INIT_SIZE;
+ size_t newsize = HT_INIT_SIZE;
while (newsize < minsize) {
// make sure it's always a power of 2
newsize <<= 1;
@@ -327,12 +327,12 @@ static int hash_may_resize(hashtab_T *ht, size_t minitems)
? ht->ht_smallarray
: xmalloc(sizeof(hashitem_T) * newsize);
- memset(newarray, 0, (size_t)(sizeof(hashitem_T) * newsize));
+ memset(newarray, 0, sizeof(hashitem_T) * newsize);
// Move all the items from the old array to the new one, placing them in
// the right spot. The new array won't have any removed items, thus this
// is also a cleanup action.
- long_u newmask = newsize - 1;
+ hash_T newmask = newsize - 1;
int todo = (int)ht->ht_used;
for (hashitem_T *olditem = oldarray; todo > 0; ++olditem) {