diff src/alloc.c @ 83632:cc587bfd19ca

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 781-792) - Update from CVS - Merge from gnus--rel--5.10 - Merge from emacs--rel--22 * emacs--rel--22 (patch 33-41) * gnus--rel--5.10 (patch 226-228) - Update from CVS Revision: emacs@sv.gnu.org/emacs--multi-tty--0--patch-21
author Miles Bader <miles@gnu.org>
date Mon, 11 Jun 2007 01:00:07 +0000
parents dc002877ce12 1842d7137ff2
children 0ece58f6e0aa
line wrap: on
line diff
--- a/src/alloc.c	Mon Jun 04 05:58:18 2007 +0000
+++ b/src/alloc.c	Mon Jun 11 01:00:07 2007 +0000
@@ -1759,6 +1759,8 @@
   string_blocks = NULL;
   n_string_blocks = 0;
   string_free_list = NULL;
+  empty_unibyte_string = make_pure_string ("", 0, 0, 0);
+  empty_multibyte_string = make_pure_string ("", 0, 0, 1);
 }
 
 
@@ -2482,6 +2484,9 @@
      int length;
 {
   Lisp_Object val;
+
+  if (!length)
+    return empty_unibyte_string;
   val = make_uninit_multibyte_string (length, length);
   STRING_SET_UNIBYTE (val);
   return val;
@@ -2500,6 +2505,8 @@
 
   if (nchars < 0)
     abort ();
+  if (!nbytes)
+    return empty_multibyte_string;
 
   s = allocate_string ();
   allocate_string_data (s, nchars, nbytes);