]> git.eshelyaron.com Git - emacs.git/commitdiff
* alloc.c (string_overflow): New function.
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 16 May 2011 01:11:54 +0000 (18:11 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 16 May 2011 01:11:54 +0000 (18:11 -0700)
(Fmake_string): Use it.  This doesn't change behavior, but saves
a few bytes and will simplify future changes.
* character.c (string_escape_byte8): Likewise.
* lisp.h (string_overflow): New decl.

src/ChangeLog
src/alloc.c
src/character.c
src/lisp.h

index 89c58eeb5a461bee0fcf8df6a6474709ab4e56de..178ebf78932becb8765c74a6faa91cc56395126c 100644 (file)
@@ -1,3 +1,11 @@
+2011-05-16  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * alloc.c (string_overflow): New function.
+       (Fmake_string): Use it.  This doesn't change behavior, but saves
+       a few bytes and will simplify future changes.
+       * character.c (string_escape_byte8): Likewise.
+       * lisp.h (string_overflow): New decl.
+
 2011-05-15  Paul Eggert  <eggert@cs.ucla.edu>
 
        Fixups, following up to the user-interface timestamp change.
index 0bce83bfae7b7c7739dbebd5b3dfabdbed9a891e..71ab54bcab5a8320238e191857d5382b65c0cba9 100644 (file)
@@ -2174,6 +2174,11 @@ compact_small_strings (void)
   current_sblock = tb;
 }
 
+void
+string_overflow (void)
+{
+  error ("Maximum string size exceeded");
+}
 
 DEFUN ("make-string", Fmake_string, Smake_string, 2, 2, 0,
        doc: /* Return a newly created string of length LENGTH, with INIT in each element.
@@ -2206,7 +2211,7 @@ INIT must be an integer that represents a character.  */)
       EMACS_INT string_len = XINT (length);
 
       if (string_len > MOST_POSITIVE_FIXNUM / len)
-       error ("Maximum string size exceeded");
+       string_overflow ();
       nbytes = len * string_len;
       val = make_uninit_multibyte_string (string_len, nbytes);
       p = SDATA (val);
index 64ea2625abb2bcba5498241b19cc4e64f2a54a6a..6a8b86d5d879fa523f7f516335df10bce211a3fe 100644 (file)
@@ -823,7 +823,7 @@ string_escape_byte8 (Lisp_Object string)
     {
       if ((MOST_POSITIVE_FIXNUM - nchars) / 3 < byte8_count
          || (MOST_POSITIVE_FIXNUM - nbytes) / 2 < byte8_count)
-       error ("Maximum string size exceeded");
+       string_overflow ();
 
       /* Convert 2-byte sequence of byte8 chars to 4-byte octal.  */
       val = make_uninit_multibyte_string (nchars + byte8_count * 3,
@@ -832,7 +832,7 @@ string_escape_byte8 (Lisp_Object string)
   else
     {
       if ((MOST_POSITIVE_FIXNUM - nchars) / 3 < byte8_count)
-       error ("Maximum string size exceeded");
+       string_overflow ();
       /* Convert 1-byte sequence of byte8 chars to 4-byte octal.  */
       val = make_uninit_string (nbytes + byte8_count * 3);
     }
index 2342ea2bdbefe2b7943d4095fdbe08363b64ab6e..b6bf2bdb50241fa9a4e9abd7918b65a1fc4b9039 100644 (file)
@@ -2710,6 +2710,7 @@ EXFUN (Fmake_vector, 2);
 EXFUN (Fvector, MANY);
 EXFUN (Fmake_symbol, 1);
 EXFUN (Fmake_marker, 0);
+extern void string_overflow (void) NO_RETURN;
 EXFUN (Fmake_string, 2);
 extern Lisp_Object build_string (const char *);
 extern Lisp_Object make_string (const char *, EMACS_INT);