* fns.c (sxhash): Redo loop for clarity and to avoid wraparound warning.
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 3 Apr 2011 05:56:37 +0000 (22:56 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 3 Apr 2011 05:56:37 +0000 (22:56 -0700)
src/ChangeLog
src/fns.c

index 04a2786..821e663 100644 (file)
@@ -1,6 +1,7 @@
 2011-04-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        * fns.c (substring_both): Remove var that is set but not used.
+       (sxhash): Redo loop for clarity and to avoid wraparound warning.
 
        * eval.c (funcall_lambda): Rename local to avoid shadowing.
 
index 8346dbc..c45d9e3 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -4219,9 +4219,9 @@ sxhash (Lisp_Object obj, int depth)
       {
        double val = XFLOAT_DATA (obj);
        unsigned char *p = (unsigned char *) &val;
-       unsigned char *e = p + sizeof val;
-       for (hash = 0; p < e; ++p)
-         hash = SXHASH_COMBINE (hash, *p);
+       size_t i;
+       for (hash = 0, i = 0; i < sizeof val; i++)
+         hash = SXHASH_COMBINE (hash, p[i]);
        break;
       }