Commit 01e8ce7e authored by Bruno Haible's avatar Bruno Haible

Fix inefficiency introduced on 2007-11-03.

parent 82604061
2007-11-09 Bruno Haible <bruno@clisp.org>
* lib/vasnprintf.c (VASNPRINTF): Increase reallocation of snprintf
buffer. Fixes an inefficiency introduced on 2007-11-03.
2007-11-09 Bruno Haible <bruno@clisp.org>
* m4/locale-tr.m4 (gt_LOCALE_TR_UTF8) [BeOS]: Make this test return
......@@ -4294,13 +4294,19 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp,
goto overflow;
else
{
/* Need at least count * sizeof (TCHAR_T) bytes.
But allocate proportionally, to avoid looping
/* Need at least (count + 1) * sizeof (TCHAR_T)
bytes. (The +1 is for the trailing NUL.)
But ask for (count + 2) * sizeof (TCHAR_T)
bytes, so that in the next round, we likely get
maxlen > (unsigned int) count + 1
and so we don't get here again.
And allocate proportionally, to avoid looping
eternally if snprintf() reports a too small
count. */
size_t n =
xmax (xsum (length,
(count + TCHARS_PER_DCHAR - 1)
((unsigned int) count + 2
+ TCHARS_PER_DCHAR - 1)
/ TCHARS_PER_DCHAR),
xtimes (allocated, 2));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment