On Sun, Aug 21, 2011 at 3:11 AM, Anthony Liguori<address@hidden> wrote:
On 08/20/2011 01:59 AM, Blue Swirl wrote:
On Fri, Aug 19, 2011 at 3:22 PM, Avi Kivity<address@hidden> wrote:
On 08/18/2011 09:54 PM, Peter Maydell wrote:
On 18 August 2011 18:48, Avi Kivity<address@hidden> wrote:
+static GMemVTable gmemvtable = {
+ .malloc = qemu_malloc,
+ .realloc = qemu_realloc,
+ .free = qemu_free,
+};
+
+/**
+ * qemu_malloc_init: initialize memory management
+ */
+void qemu_malloc_init(void)
+{
+ g_mem_set_vtable(&gmemvtable);
+}
Does this mean you can now safely allocate with g_malloc
and free with qemu_free, or is mixing the two APIs like that
still a no-no ?
You can, but I'd forbid it. Mixing layers can only lead to tears later
on.
Best would be to convert qemu_malloc()s to g_new()s and g_malloc()s to
reduce confusion.
Also plain malloc() and friends, except in tracing back end for obvious
reasons.
sed script:
s:qemu_mallocz\( *\)(:g_malloc0\1\(:g
s:qemu_malloc\( *\)(:g_malloc\1\(:g
s:qemu_free\( *\)(:g_free\1\(:g
s:qemu_strdup\( *\)(:g_strdup\1\(:g
s:qemu_strndup\( *\)(:g_strndup\1\(:g
nih--;
Too bad GLib does not provide a function which gives aligned memory,
then also qemu_memalign() and maybe qemu_vmalloc() could be replaced.