Make sure constants are unsigned in string_hash.
authorChris Hanson <org/chris-hanson/cph>
Wed, 22 Nov 2006 04:36:35 +0000 (04:36 +0000)
committerChris Hanson <org/chris-hanson/cph>
Wed, 22 Nov 2006 04:36:35 +0000 (04:36 +0000)
v7/src/microcode/intern.c

index c25c92869de07b1f09376b9fb29eab1618287e90..d1d66658293fe1dc8f9dbda285efa56510fd4e7c 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-C-*-
 
-$Id: intern.c,v 9.62 2006/10/30 06:02:30 cph Exp $
+$Id: intern.c,v 9.63 2006/11/22 04:36:35 cph Exp $
 
 Copyright 1987,1988,1989,1992,1994,1996 Massachusetts Institute of Technology
 Copyright 2000,2004,2005,2006 Massachusetts Institute of Technology
@@ -45,11 +45,11 @@ DEFUN (string_hash, (length, string),
        unsigned long length AND
        CONST char * string)
 {
-  CONST char * scan = string;
-  CONST char * end = (scan + length);
-  unsigned int result = 2166136261;
+  CONST unsigned char * scan = string;
+  CONST unsigned char * end = (scan + length);
+  unsigned int result = 0x811c9dc5;
   while (scan < end)
-    result = ((result * 16777619) + (*scan++));
+    result = ((result * 0x1000193) + (*scan++));
   return (result & ((unsigned int) BIGGEST_FIXNUM));
 }