[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: obstack_printf
From: |
Bruno Haible |
Subject: |
Re: obstack_printf |
Date: |
Fri, 13 Apr 2007 11:33:46 +0200 |
User-agent: |
KMail/1.5.4 |
Eric Blake wrote:
> obstack_printf is glibc specific, and not part of the gnulib obstack
> module. Is there interest in supporting obstack_printf alongside the
> vasnprintf family?
Yes. Since glibc has it, and it can be implemented in a portable way, it
is welcome if gnulib provides a substitute. Can you write it? I'll be
away for a week.
> it is rather wasteful the
> amount of strings that it puts through asprintf followed by copying to the
> obstack rather than direct use of obstack_printf
Sure. That's what vasnprintf() is made for. I would implement
obstack_printf by calling vasnprintf with
n = max (number of bytes available in the current obstack segment, 2000),
i.e. write directly into the obstack if the number of available bytes is >=
2000,
and use a stack-allocated buffer (like vfprintf-posix does) if it is < 2000.
This way, the average cost of malloc is kept low, since a malloc only occurs
when the output is large _and_ doesn't fit.
Bruno
- obstack_printf, Eric Blake, 2007/04/12
- Re: obstack_printf,
Bruno Haible <=