diff --git a/historic/jam/src/hash.c b/historic/jam/src/hash.c index c632c8fe9..4662efaee 100644 --- a/historic/jam/src/hash.c +++ b/historic/jam/src/hash.c @@ -29,7 +29,7 @@ char *hashsccssid="@(#)hash.c 1.14 () 6/20/88"; struct hashhdr { struct item *next; - int keyval; /* for quick comparisons */ + unsigned int keyval; /* for quick comparisons */ } ; /* This structure overlays the one handed to hashenter(). */ @@ -96,8 +96,8 @@ hashitem( { ITEM **base; register ITEM *i; - char *b = (*data)->key; - int keyval; + unsigned char *b = (unsigned char*)(*data)->key; + unsigned int keyval; if( enter && !hp->items.more ) hashrehash( hp ); @@ -110,8 +110,6 @@ hashitem( while( *b ) keyval = keyval * 2147059363 + *b++; - keyval &= 0x7FFFFFFF; - base = hp->tab.base + ( keyval % hp->tab.nel ); for( i = *base; i; i = i->hdr.next ) diff --git a/jam_src/hash.c b/jam_src/hash.c index c632c8fe9..4662efaee 100644 --- a/jam_src/hash.c +++ b/jam_src/hash.c @@ -29,7 +29,7 @@ char *hashsccssid="@(#)hash.c 1.14 () 6/20/88"; struct hashhdr { struct item *next; - int keyval; /* for quick comparisons */ + unsigned int keyval; /* for quick comparisons */ } ; /* This structure overlays the one handed to hashenter(). */ @@ -96,8 +96,8 @@ hashitem( { ITEM **base; register ITEM *i; - char *b = (*data)->key; - int keyval; + unsigned char *b = (unsigned char*)(*data)->key; + unsigned int keyval; if( enter && !hp->items.more ) hashrehash( hp ); @@ -110,8 +110,6 @@ hashitem( while( *b ) keyval = keyval * 2147059363 + *b++; - keyval &= 0x7FFFFFFF; - base = hp->tab.base + ( keyval % hp->tab.nel ); for( i = *base; i; i = i->hdr.next )