]> code.delx.au - gnu-emacs/blobdiff - src/ChangeLog
Merge from mainline.
[gnu-emacs] / src / ChangeLog
index 107d6f0073afe30486c925abeea24e2f4a5b19cf..f9ca67e703d7f508aec6d282daca2170eba1bf14 100644 (file)
@@ -1,3 +1,28 @@
+2011-04-28  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * sysdep.c (get_random): Don't assume EMACS_INT is no wider than long.
+       Also, don't assume VALBITS / RAND_BITS is less than 5,
+       and don't rely on undefined behavior when shifting a 1 left into
+       the sign bit.
+       * lisp.h (get_random): Change signature to match.
+
+       * lread.c (hash_string): Use size_t, not int, for hash computation.
+       Normally we prefer signed values; but hashing is special, because
+       it's better to use unsigned division on hash table sizes so that
+       the remainder is nonnegative.  Also, size_t is the natural width
+       for hashing into memory.  The previous code used 'int', which doesn't
+       retain enough info to hash well into very large tables.
+       (oblookup, oblookup_last_bucket_number, Funintern): Likewise.
+
+       * dbusbind.c: Don't possibly lose pointer info when converting.
+       (xd_remove_watch, Fdbus_init_bus, xd_read_queued_messages):
+       Use XPNTR rather than XHASH, so that the high-order bits of
+       the pointer aren't lost when converting through void *.
+
+       * eval.c (Fautoload): Don't double-shift a pointer.
+
+       * fns.c (Frandom): Let EMACS_UINT be wider than unsigned long.
+
 2011-04-28  Eli Zaretskii  <eliz@gnu.org>
 
        * doprnt.c (doprnt): Don't return value smaller than the buffer