From ae5d7198f7fe949385279369c0b4c06a6e5ea260 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Wed, 16 Mar 2016 14:15:19 -0700 Subject: [PATCH] shared: Print .c file/line number in x* routines Switches from inline to pre-processor definitions in order to utilize __FILE__ and __LINE__ from the .c file in order to display the location of memory allocation failures when failing. Now xmalloc, et al calls will produce: [weston-info] clients/weston-info.c:714: out of memory (1024) Signed-off-by: Bryce Harrington Reviewed-by: Pekka Paalanen --- shared/xalloc.h | 28 ++++------------------------ 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/shared/xalloc.h b/shared/xalloc.h index e0d44bfe..85fccb48 100644 --- a/shared/xalloc.h +++ b/shared/xalloc.h @@ -38,30 +38,10 @@ extern "C" { void * fail_on_null(void *p, size_t size, char *file, int32_t line); -static inline void * -xmalloc(size_t s) -{ - return fail_on_null(malloc(s), s, NULL, 0); -} - -static inline void * -xzalloc(size_t s) -{ - return fail_on_null(zalloc(s), s, NULL, 0); -} - -static inline char * -xstrdup(const char *s) -{ - return fail_on_null(strdup(s), 0, NULL, 0); -} - -static inline void * -xrealloc(char *p, size_t s) -{ - return fail_on_null(realloc(p, s), s, NULL, 0); -} - +#define xmalloc(s) (fail_on_null(malloc(s), (s), __FILE__, __LINE__)) +#define xzalloc(s) (fail_on_null(zalloc(s), (s), __FILE__, __LINE__)) +#define xstrdup(s) (fail_on_null(strdup(s), 0, __FILE__, __LINE__)) +#define xrealloc(p, s) (fail_on_null(realloc(p, s), (s), __FILE__, __LINE__)) #ifdef __cplusplus }