X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=hashtable.h;h=71b05cea015d939d7b2b039c4cea8f81afec8170;hb=896f385f6690cfbe51ea1c07d7361a01914e9f9f;hp=c09b3ff3e77f344f1dd3fa8ab0f4685be5801b87;hpb=dd34ddf490dd97c2c202092c8fa44064a07f8c4f;p=model-checker.git diff --git a/hashtable.h b/hashtable.h index c09b3ff..71b05ce 100644 --- a/hashtable.h +++ b/hashtable.h @@ -37,7 +37,8 @@ struct hashlistnode { * @brief A simple, custom hash table * * By default it is snapshotting, but you can pass in your own allocation - * functions. + * functions. Note that this table does not support 0 (NULL) keys and is + * designed primarily with pointer-based keys in mind. * * @tparam _Key Type name for the key * @tparam _Val Type name for the values to be stored @@ -105,6 +106,9 @@ template threshold) resize(capacity << 1); @@ -130,6 +134,9 @@ template *search; + /* HashTable cannot handle 0 as a key */ + ASSERT(key); + unsigned int index = ((_KeyInt)key) >> _Shift; do { index &= capacitymask; @@ -145,6 +152,9 @@ template *search; + /* HashTable cannot handle 0 as a key */ + ASSERT(key); + unsigned int index = ((_KeyInt)key) >> _Shift; do { index &= capacitymask;