diff options
author | Donovan Baarda <abo@minkirri.apana.org.au> | 2019-10-02 20:44:31 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-10-02 20:44:31 +1000 |
commit | ebc7f7a9338e79c087f573607e335cb64f3ad167 (patch) | |
tree | acb18243ced05c915b4980f97e3ccccf2da87f08 | |
parent | 1ad3c7c600dc7231b0d3feb9bfcd83fa0ebe1051 (diff) | |
parent | 00d781139b5f550a477cc94bf6b021410191101a (diff) | |
download | librsync-ebc7f7a9338e79c087f573607e335cb64f3ad167.tar.gz |
Merge pull request #170 from ardovm/vs2019
fix compilation with MS Visual Studio ad ignore build files
-rw-r--r-- | .gitignore | 7 | ||||
-rw-r--r-- | src/hashtable.h | 7 |
2 files changed, 11 insertions, 3 deletions
@@ -40,6 +40,8 @@ CMakeDoxygenDefaults.cmake # Test binaries *_test +*_test.exe +*_test.exe.manifest *.bak @@ -60,3 +62,8 @@ doxygen_sqlite3.db .ninja_log build.ninja rules.ninja + +# Microsoft Visual Studio build files +*.sln +*.vcxproj +*.vcxproj.filters diff --git a/src/hashtable.h b/src/hashtable.h index 7ce2e80..a51926a 100644 --- a/src/hashtable.h +++ b/src/hashtable.h @@ -189,11 +189,11 @@ static inline unsigned mix32(unsigned int h) # define NAME_iter _JOIN(NAME, _iter) # define NAME_next _JOIN(NAME, _next) -/* Modified hash() with/without mix32() and non-zero output. */ +/* Modified hash() with/without mix32(). */ # ifdef HASHTABLE_NMIX32 -# define _KEY_HASH(k) ({unsigned hk=KEY_hash((KEY_t *)k); hk ? hk : -1;}) +# define _KEY_HASH(k) KEY_hash((KEY_t *)k) # else -# define _KEY_HASH(k) ({unsigned hk=mix32(KEY_hash((KEY_t *)k)); hk ? hk : -1;}) +# define _KEY_HASH(k) mix32(KEY_hash((KEY_t *)k)) # endif /* Loop macro for probing table t for key k, setting hk to the hash for k @@ -202,6 +202,7 @@ static inline unsigned mix32(unsigned int h) # define _for_probe(t, k, hk, i, h) \ const unsigned mask = t->size - 1;\ unsigned hk = _KEY_HASH(k), i, s, h;\ + if (hk == 0) hk = -1;\ for (i = hk & mask, s = 0; (h = t->ktable[i]); i = (i + ++s) & mask) /* Conditional macro for incrementing stats counters. */ |