aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/hashtab.h
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.h
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.h')
-rw-r--r--src/nvim/hashtab.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/nvim/hashtab.h b/src/nvim/hashtab.h
index b556c6a9f3..8fba1c1ef5 100644
--- a/src/nvim/hashtab.h
+++ b/src/nvim/hashtab.h
@@ -4,7 +4,7 @@
#include "nvim/vim.h"
/// Type for hash number (hash calculation result).
-typedef long_u hash_T;
+typedef size_t hash_T;
/// The address of "hash_removed" is used as a magic number
/// for hi_key to indicate a removed item.
@@ -53,10 +53,10 @@ typedef struct hashitem_S {
///
/// The hashtable grows to accommodate more entries when needed.
typedef struct hashtable_S {
- long_u ht_mask; /// mask used for hash value
+ hash_T ht_mask; /// mask used for hash value
/// (nr of items in array is "ht_mask" + 1)
- long_u ht_used; /// number of items used
- long_u ht_filled; /// number of items used or removed
+ size_t ht_used; /// number of items used
+ size_t ht_filled; /// number of items used or removed
int ht_locked; /// counter for hash_lock()
int ht_error; /// when set growing failed, can't add more
/// items before growing works