(make_gap): Make this new error check also check exceeding VALBITS.
authorRichard M. Stallman <rms@gnu.org>
Fri, 5 May 1995 03:02:02 +0000 (03:02 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 5 May 1995 03:02:02 +0000 (03:02 +0000)
(insert_1): Delete old error test.
(min): New macro.

src/insdel.c

index 59c789a..0f5668f 100644 (file)
@@ -25,6 +25,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #include "window.h"
 #include "blockinput.h"
 
+#define min(x, y) ((x) < (y) ? (x) : (y))
+
 static void insert_from_string_1 ();
 static void insert_from_buffer_1 ();
 static void gap_left ();
@@ -275,9 +277,9 @@ make_gap (increment)
      even if it will fit in a Lisp integer.
      That won't work because so many places use `int'.  */
      
-  if (VALBITS > INTBITS
-      && (Z - BEG + GAP_SIZE + increment) >= ((unsigned) 1 << (INTBITS - 1)))
-    error ("Buffer too big");
+  if (Z - BEG + GAP_SIZE + increment
+      >= ((unsigned) 1 << (min (INTBITS, VALBITS) - 1)))
+    error ("Buffer exceeds maximum size");
 
   BLOCK_INPUT;
   result = BUFFER_REALLOC (BEG_ADDR, (Z - BEG + GAP_SIZE + increment));
@@ -350,11 +352,6 @@ insert_1 (string, length, inherit, prepare)
 {
   register Lisp_Object temp;
 
-  /* Make sure point-max won't overflow after this insertion.  */
-  XSETINT (temp, length + Z);
-  if (length + Z != XINT (temp))
-    error ("maximum buffer size exceeded");
-
   if (prepare)
     prepare_to_modify_buffer (PT, PT);