Commit 14f6194b authored by Richard M. Stallman's avatar Richard M. Stallman

(make_gap): Make this new error check also check exceeding VALBITS.

(insert_1): Delete old error test.
(min): New macro.
parent 8f4f023f
...@@ -25,6 +25,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -25,6 +25,8 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "window.h" #include "window.h"
#include "blockinput.h" #include "blockinput.h"
#define min(x, y) ((x) < (y) ? (x) : (y))
static void insert_from_string_1 (); static void insert_from_string_1 ();
static void insert_from_buffer_1 (); static void insert_from_buffer_1 ();
static void gap_left (); static void gap_left ();
...@@ -275,9 +277,9 @@ make_gap (increment) ...@@ -275,9 +277,9 @@ make_gap (increment)
even if it will fit in a Lisp integer. even if it will fit in a Lisp integer.
That won't work because so many places use `int'. */ That won't work because so many places use `int'. */
if (VALBITS > INTBITS if (Z - BEG + GAP_SIZE + increment
&& (Z - BEG + GAP_SIZE + increment) >= ((unsigned) 1 << (INTBITS - 1))) >= ((unsigned) 1 << (min (INTBITS, VALBITS) - 1)))
error ("Buffer too big"); error ("Buffer exceeds maximum size");
BLOCK_INPUT; BLOCK_INPUT;
result = BUFFER_REALLOC (BEG_ADDR, (Z - BEG + GAP_SIZE + increment)); result = BUFFER_REALLOC (BEG_ADDR, (Z - BEG + GAP_SIZE + increment));
...@@ -350,11 +352,6 @@ insert_1 (string, length, inherit, prepare) ...@@ -350,11 +352,6 @@ insert_1 (string, length, inherit, prepare)
{ {
register Lisp_Object temp; 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) if (prepare)
prepare_to_modify_buffer (PT, PT); prepare_to_modify_buffer (PT, PT);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment