@@ -84,12 +84,9 @@ s_item_hash (const char *key, size_t limit)
8484 uint
8585 key_hash = 0 ;
8686
87- // Torek hashing function
88- while (* key ) {
89- key_hash *= 33 ;
90- key_hash += * key ;
91- key ++ ;
92- }
87+ // Modified Bernstein hashing function
88+ while (* key )
89+ key_hash = 33 * key_hash ^ * key ++ ;
9390 key_hash %= limit ;
9491 return key_hash ;
9592}
@@ -467,36 +464,36 @@ zhash_test (int verbose)
467464
468465 // Insert some items
469466 int rc ;
470- rc = zhash_insert (hash , "DEADBEEF" , ( void * ) 0xDEADBEEF );
467+ rc = zhash_insert (hash , "DEADBEEF" , "dead beef" );
471468 assert (rc == 0 );
472- rc = zhash_insert (hash , "ABADCAFE" , ( void * ) 0xABADCAFE );
469+ rc = zhash_insert (hash , "ABADCAFE" , "a bad cafe" );
473470 assert (rc == 0 );
474- rc = zhash_insert (hash , "C0DEDBAD" , ( void * ) 0xC0DEDBAD );
471+ rc = zhash_insert (hash , "C0DEDBAD" , "coded bad" );
475472 assert (rc == 0 );
476- rc = zhash_insert (hash , "DEADF00D" , ( void * ) 0xDEADF00D );
473+ rc = zhash_insert (hash , "DEADF00D" , "dead food" );
477474 assert (rc == 0 );
478475 assert (zhash_size (hash ) == 4 );
479476
480477 // Look for existing items
481- void * item ;
478+ char * item ;
482479 item = zhash_lookup (hash , "DEADBEEF" );
483- assert (item == ( void * ) 0xDEADBEEF );
480+ assert (streq ( item , "dead beef" ) );
484481 item = zhash_lookup (hash , "ABADCAFE" );
485- assert (item == ( void * ) 0xABADCAFE );
482+ assert (streq ( item , "a bad cafe" ) );
486483 item = zhash_lookup (hash , "C0DEDBAD" );
487- assert (item == ( void * ) 0xC0DEDBAD );
484+ assert (streq ( item , "coded bad" ) );
488485 item = zhash_lookup (hash , "DEADF00D" );
489- assert (item == ( void * ) 0xDEADF00D );
486+ assert (streq ( item , "dead food" ) );
490487
491488 // Look for non-existent items
492- item = zhash_lookup (hash , "0xF0000000 " );
489+ item = zhash_lookup (hash , "foo " );
493490 assert (item == NULL );
494491
495492 // Try to insert duplicate items
496- rc = zhash_insert (hash , "DEADBEEF" , ( void * ) 0xF0000000 );
493+ rc = zhash_insert (hash , "DEADBEEF" , "foo" );
497494 assert (rc == -1 );
498495 item = zhash_lookup (hash , "DEADBEEF" );
499- assert (item == ( void * ) 0xDEADBEEF );
496+ assert (streq ( item , "dead beef" ) );
500497
501498 // Rename an item
502499 rc = zhash_rename (hash , "DEADBEEF" , "LIVEBEEF" );
0 commit comments