On Tue, 9 Mar 2010 12:30:08 +0000, Paul Brook <[email protected]> wrote:
> > Is there any reason (other than being coding style) in using qemu_free()
> > instead of free()? As per qem-malloc.c qemu_free() is nothing but free().
>
> The whole point of qemu_{malloc,free} is to isolate code from the system
> implementation of malloc/free. It's entirely possible that future versions of
> qemu_malloc will use a different memory allocation strategy.
>
> > The reason I am asking is.. tracking string allocs become tricky
> > if some of them were defined using qemu_alloc() and others are allocated
> > through sprintf().
>
> sprintf does not allocate memory.
> If you mean strdup, then you shouldn't be using that (use qemu_strdup).
we have code that does
static void v9fs_string_sprintf(V9fsString *str, const char *fmt, ...)
{
va_list ap;
int err;
v9fs_string_free(str);
va_start(ap, fmt);
err = vasprintf(&str->data, fmt, ap);
BUG_ON(err == -1);
va_end(ap);
str->size = err;
}
I guess we should not be using vasprint. What alternatives are
available today ?
-aneesh