Fix bug in recent styled_format change
Problem reported by Kaushal Modi in: http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00141.html * src/editfns.c (styled_format): Fix bug where USE_SAFE_ALLOCA was not always followed by SAFE_FREE. This bug was introduced in my patch 2017-09-26T23:31:57Z!eggert@cs.ucla.edu entitled "Avoid some unnecessary copying in Fformat etc."
This commit is contained in:
parent
fa92f0c447
commit
9226cf3254
1 changed files with 11 additions and 3 deletions
|
@ -4179,6 +4179,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
|
|||
multibyte character of the previous string. This flag tells if we
|
||||
must consider such a situation or not. */
|
||||
bool maybe_combine_byte;
|
||||
Lisp_Object val;
|
||||
bool arg_intervals = false;
|
||||
USE_SAFE_ALLOCA;
|
||||
sa_avail -= sizeof initial_buffer;
|
||||
|
@ -4417,7 +4418,10 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
|
|||
{
|
||||
if (format == end && format - format_start == 2
|
||||
&& ! string_intervals (args[0]))
|
||||
return arg;
|
||||
{
|
||||
val = arg;
|
||||
goto return_val;
|
||||
}
|
||||
|
||||
/* handle case (precision[n] >= 0) */
|
||||
|
||||
|
@ -4862,11 +4866,14 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
|
|||
emacs_abort ();
|
||||
|
||||
if (! new_result)
|
||||
return args[0];
|
||||
{
|
||||
val = args[0];
|
||||
goto return_val;
|
||||
}
|
||||
|
||||
if (maybe_combine_byte)
|
||||
nchars = multibyte_chars_in_text ((unsigned char *) buf, p - buf);
|
||||
Lisp_Object val = make_specified_string (buf, nchars, p - buf, multibyte);
|
||||
val = make_specified_string (buf, nchars, p - buf, multibyte);
|
||||
|
||||
/* If the format string has text properties, or any of the string
|
||||
arguments has text properties, set up text properties of the
|
||||
|
@ -4964,6 +4971,7 @@ styled_format (ptrdiff_t nargs, Lisp_Object *args, bool message)
|
|||
}
|
||||
}
|
||||
|
||||
return_val:
|
||||
/* If we allocated BUF or INFO with malloc, free it too. */
|
||||
SAFE_FREE ();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue