[PATCH 2/2] shared: Print .c file/line number in x* routines
Bryce Harrington
bryce at osg.samsung.com
Tue Mar 15 22:23:31 UTC 2016
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 <bryce at osg.samsung.com>
---
shared/xalloc.h | 28 ++++------------------------
1 file changed, 4 insertions(+), 24 deletions(-)
diff --git a/shared/xalloc.h b/shared/xalloc.h
index 74a9b6c..4464133 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), 1, __FILE__, __LINE__))
+#define xrealloc(p, s) (fail_on_null(realloc(p, s), s, __FILE__, __LINE__))
#ifdef __cplusplus
}
--
1.9.1
More information about the wayland-devel
mailing list