]> git.eshelyaron.com Git - emacs.git/commitdiff
(init_strings): Initialize canonical empty strings.
authorJuanma Barranquero <lekktu@gmail.com>
Fri, 8 Jun 2007 19:59:46 +0000 (19:59 +0000)
committerJuanma Barranquero <lekktu@gmail.com>
Fri, 8 Jun 2007 19:59:46 +0000 (19:59 +0000)
(make_uninit_string, make_uninit_multibyte_string): Return appropriate
canonical empty string when the requested size is 0.

src/alloc.c

index 68b490f98b573456f0fffda7202427e98d78a163..7668309e59c7debdebf479f2ad8f2afc4f665554 100644 (file)
@@ -1756,6 +1756,8 @@ init_strings ()
   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);
 }
 
 
@@ -2479,6 +2481,9 @@ make_uninit_string (length)
      int length;
 {
   Lisp_Object val;
+
+  if (!length)
+    return empty_unibyte_string;
   val = make_uninit_multibyte_string (length, length);
   STRING_SET_UNIBYTE (val);
   return val;
@@ -2497,6 +2502,8 @@ make_uninit_multibyte_string (nchars, nbytes)
 
   if (nchars < 0)
     abort ();
+  if (!nbytes)
+    return empty_multibyte_string;
 
   s = allocate_string ();
   allocate_string_data (s, nchars, nbytes);