]> git.eshelyaron.com Git - emacs.git/commitdiff
* macros.c (Fstart_kbd_macro): Avoid need for overflow check.
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 14 Jul 2014 19:07:54 +0000 (12:07 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 14 Jul 2014 19:07:54 +0000 (12:07 -0700)
src/ChangeLog
src/macros.c

index 75c2a01d2d2e6d41413e5eb53a6aeadfb776e298..53795742131ed34d52914ef96cef6fbf6f3c26cf 100644 (file)
@@ -1,6 +1,6 @@
 2014-07-14  Paul Eggert  <eggert@cs.ucla.edu>
 
-       * macros.c (Fstart_kbd_macro): Simplify.
+       * macros.c (Fstart_kbd_macro): Avoid need for overflow check.
        This works around a GCC compiler bug when Emacs is configured with
        --enable-gcc-warnings.
 
index 07667f09431b8d6fae892b697d6b774e78e2c467..4730a8becc9158bba8efcd43a7d0283267ecec10 100644 (file)
@@ -87,16 +87,13 @@ macro before appending to it.  */)
       /* Check the type of last-kbd-macro in case Lisp code changed it.  */
       len = CHECK_VECTOR_OR_STRING (KVAR (current_kboard, Vlast_kbd_macro));
 
-      if (INT_ADD_OVERFLOW (len, incr))
-       memory_full (SIZE_MAX);
-
       /* Copy last-kbd-macro into the buffer, in case the Lisp code
         has put another macro there.  */
-      if (current_kboard->kbd_macro_bufsize < len + incr)
+      if (current_kboard->kbd_macro_bufsize - incr < len)
        current_kboard->kbd_macro_buffer =
          xpalloc (current_kboard->kbd_macro_buffer,
                   &current_kboard->kbd_macro_bufsize,
-                  len + incr - current_kboard->kbd_macro_bufsize, -1,
+                  len - current_kboard->kbd_macro_bufsize + incr, -1,
                   sizeof *current_kboard->kbd_macro_buffer);
 
       /* Must convert meta modifier when copying string to vector.  */