]> git.eshelyaron.com Git - emacs.git/commitdiff
* fns.c (Fstring_as_unibyte): Use xlispstrdup.
authorDmitry Antipov <dmantipov@yandex.ru>
Wed, 16 Oct 2013 09:30:30 +0000 (13:30 +0400)
committerDmitry Antipov <dmantipov@yandex.ru>
Wed, 16 Oct 2013 09:30:30 +0000 (13:30 +0400)
src/ChangeLog
src/fns.c

index 19f7fdcfcfff7825598873b2c2fd27668ca74d3c..6b4660b2baf86fd4ea09b5c987cdbffe94a37dd4 100644 (file)
@@ -1,3 +1,7 @@
+2013-10-16  Dmitry Antipov  <dmantipov@yandex.ru>
+
+       * fns.c (Fstring_as_unibyte): Use xlispstrdup.
+
 2013-10-15  Paul Eggert  <eggert@cs.ucla.edu>
 
        * print.c (print_object): Print " ..." when truncating bool vectors.
index cb439024c08a6d5e89445a9603a2653c799c1643..ceea0306b5f5835db96f3a2bf6bf3bee785aae7a 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -1009,11 +1009,9 @@ If STRING is multibyte and contains a character of charset
 
   if (STRING_MULTIBYTE (string))
     {
-      ptrdiff_t bytes = SBYTES (string);
-      unsigned char *str = xmalloc (bytes);
+      unsigned char *str = xlispstrdup (string);
+      ptrdiff_t bytes = str_as_unibyte (str, SBYTES (string));
 
-      memcpy (str, SDATA (string), bytes);
-      bytes = str_as_unibyte (str, bytes);
       string = make_unibyte_string ((char *) str, bytes);
       xfree (str);
     }