diff --git a/src/namedict.h b/src/namedict.h index a20bf4fe..a8ab8739 100644 --- a/src/namedict.h +++ b/src/namedict.h @@ -39,19 +39,19 @@ namespace pkpy{ //https://github.com/python/cpython/blob/main/Objects/dictobject.c#L175 #define HASH_PROBE(key, ok, i) \ - int i = (key).index % _capacity; \ + int i = (key).index & (_capacity-1); \ bool ok = false; \ while(!_a[i].empty()) { \ if(_a[i].first == (key)) { ok = true; break; } \ - i = (5*i + 1) % _capacity; \ + i = (5*i + 1) & (_capacity-1); \ } #define HASH_PROBE_OVERRIDE(key, ok, i) \ - i = (key).index % _capacity; \ + i = (key).index & (_capacity-1); \ ok = false; \ while(!_a[i].empty()) { \ if(_a[i].first == (key)) { ok = true; break; } \ - i = (5*i + 1) % _capacity; \ + i = (5*i + 1) & (_capacity-1); \ } const PyVar& operator[](StrName key) const {