]> git.eshelyaron.com Git - emacs.git/commitdiff
* alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 Jun 2011 15:39:24 +0000 (08:39 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 Jun 2011 15:39:24 +0000 (08:39 -0700)
src/ChangeLog
src/alloc.c

index b9cf18cedd945862939dc5fe05620db40b6c32b2..80626bc0c2ae6e45e37f6e56fb423509f535047d 100644 (file)
@@ -1,5 +1,7 @@
 2011-06-18  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
+
        * fns.c (concat): Catch string overflow earlier.
        Do not rely on integer wraparound.
 
index 00d330c1b6ac71fc00db2d9db593825e49711dfd..69623d103c3fa859ab64b452fe2cf6d07c79fcf0 100644 (file)
@@ -2257,12 +2257,14 @@ LENGTH must be a number.  INIT matters only in whether it is t or nil.  */)
   p = XBOOL_VECTOR (val);
   p->size = XFASTINT (length);
 
-  memset (p->data, NILP (init) ? 0 : -1, length_in_chars);
+  if (length_in_chars)
+    {
+      memset (p->data, ! NILP (init) ? -1 : 0, length_in_chars);
 
-  /* Clear the extraneous bits in the last byte.  */
-  if (XINT (length) != length_in_chars * BOOL_VECTOR_BITS_PER_CHAR)
-    p->data[length_in_chars - 1]
-      &= (1 << (XINT (length) % BOOL_VECTOR_BITS_PER_CHAR)) - 1;
+      /* Clear any extraneous bits in the last byte.  */
+      p->data[length_in_chars - 1]
+       &= (1 << (XINT (length) % BOOL_VECTOR_BITS_PER_CHAR)) - 1;
+    }
 
   return val;
 }