This makes the tracing infrastructure available to users of g_new(). Signed-off-by: Avi Kivity <a...@redhat.com> --- qemu-common.h | 1 + qemu-malloc.c | 15 +++++++++++++++ vl.c | 1 + 3 files changed, 17 insertions(+), 0 deletions(-)
diff --git a/qemu-common.h b/qemu-common.h index 74d5c4b..fbe2de0 100644 --- a/qemu-common.h +++ b/qemu-common.h @@ -180,6 +180,7 @@ const char *path(const char *pathname); #define qemu_isascii(c) isascii((unsigned char)(c)) #define qemu_toascii(c) toascii((unsigned char)(c)) +void qemu_malloc_init(void); void *qemu_oom_check(void *ptr); void *qemu_malloc(size_t size); void *qemu_realloc(void *ptr, size_t size); diff --git a/qemu-malloc.c b/qemu-malloc.c index b9b3851..8b0c1ec 100644 --- a/qemu-malloc.c +++ b/qemu-malloc.c @@ -24,6 +24,21 @@ #include "qemu-common.h" #include "trace.h" #include <stdlib.h> +#include <glib.h> + +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); +} void qemu_free(void *ptr) { diff --git a/vl.c b/vl.c index c714127..7c4f8da 100644 --- a/vl.c +++ b/vl.c @@ -2106,6 +2106,7 @@ int main(int argc, char **argv, char **envp) atexit(qemu_run_exit_notifiers); error_set_progname(argv[0]); + qemu_malloc_init(); init_clocks(); -- 1.7.6