Mercurial > emacs
changeset 56147:6b858fb89033
* fns.c (string_to_multibyte): Use xmalloc/xfree instead of alloca.
author | Jan Djärv <jan.h.d@swipnet.se> |
---|---|
date | Thu, 17 Jun 2004 14:37:53 +0000 |
parents | 5e784b2ea638 |
children | dbab365230eb |
files | src/ChangeLog src/fns.c |
diffstat | 2 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Thu Jun 17 13:04:25 2004 +0000 +++ b/src/ChangeLog Thu Jun 17 14:37:53 2004 +0000 @@ -1,5 +1,7 @@ 2004-06-17 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> + * fns.c (string_to_multibyte): Use xmalloc/xfree instead of alloca. + * macfns.c (Fx_display_color_cells): Do not limit return value to 256. * macterm.c (mac_initialize_display_info): Initialize n_planes correctly
--- a/src/fns.c Thu Jun 17 13:04:25 2004 +0000 +++ b/src/fns.c Thu Jun 17 14:37:53 2004 +0000 @@ -1049,16 +1049,24 @@ Lisp_Object string; { unsigned char *buf; + Lisp_Object ret; if (! STRING_MULTIBYTE (string)) return string; - buf = (unsigned char *) alloca (SCHARS (string)); + /* We can not use alloca here, because string might be very long. + For example when selecting megabytes of text and then pasting it to + another application. */ + buf = (unsigned char *) xmalloc (SCHARS (string)); copy_text (SDATA (string), buf, SBYTES (string), 1, 0); - return make_unibyte_string (buf, SCHARS (string)); + ret = make_unibyte_string (buf, SCHARS (string)); + + xfree (buf); + + return ret; } DEFUN ("string-make-multibyte", Fstring_make_multibyte, Sstring_make_multibyte,