rts/Hash.c
/* -----------------------------------------------------------------------------
 * Hash first using the smaller table.  If the bucket is less than the
 * next bucket to be split, re-hash using the larger table.
 * -------------------------------------------------------------------------- */
Hash first using the smaller table.  If the bucket is less than the
next bucket to be split, re-hash using the larger table.
Hash first using the smaller table . If the bucket is less than the next bucket to be split re - hash using the larger table .
int
hashWord(HashTable *table, StgWord key)
{
    int bucket;
    key /= sizeof(StgWord);
    bucket = key & table->mask1;
    if (bucket < table->split) {
        bucket = key & table->mask2;
    }
    return bucket;
}
int hashWord ( HashTable * table , StgWord key ) { int bucket ; key /= sizeof ( StgWord ) ; bucket = key & table -> mask1 ; if ( bucket < table -> split ) { bucket = key & table -> mask2 ; } return bucket ; }
Hash first using the smaller table.
Hash first using the smaller table .
/* Strip the boring zero bits */ /* Mod the size of the hash table (a power of 2) */ /* Mod the size of the expanded hash table (also a power of 2) */