diff options
Diffstat (limited to 'src/qxl_mem.c')
-rw-r--r-- | src/qxl_mem.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/qxl_mem.c b/src/qxl_mem.c index 18ff3d9..3c19d1f 100644 --- a/src/qxl_mem.c +++ b/src/qxl_mem.c @@ -56,7 +56,7 @@ qxl_mem_unverifiable(struct qxl_mem *mem) } #endif -static void +static void __attribute__ ((format (gnu_printf, 2, 3))) errout (void *data, const char *format, ...) { va_list va; @@ -68,6 +68,19 @@ errout (void *data, const char *format, ...) va_end (va); } +static void __attribute__ ((__noreturn__)) +qxl_mspace_abort_func (void *user_data) +{ + abort (); +} + +void +qxl_mem_init(void) +{ + mspace_set_print_func (errout); + mspace_set_abort_func (qxl_mspace_abort_func); +} + struct qxl_mem * qxl_mem_create (void *base, unsigned long n_bytes) @@ -80,7 +93,6 @@ qxl_mem_create (void *base, ErrorF ("memory space from %p to %p\n", base, (char *)base + n_bytes); - mspace_set_print_func (errout); mem->space = create_mspace_with_base (base, n_bytes, 0, NULL); |