From 187eace6139754eae58a21303c808a270f70dc3f Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B8rgen=20Lind?= Date: Tue, 13 Dec 2011 22:01:34 +0100 Subject: [PATCH] Make wl_list_for_each* work for c++ --- src/wayland-util.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/wayland-util.h b/src/wayland-util.h index 953d51a..625a2d3 100644 --- a/src/wayland-util.h +++ b/src/wayland-util.h @@ -117,9 +117,15 @@ int wl_list_length(struct wl_list *list); int wl_list_empty(struct wl_list *list); void wl_list_insert_list(struct wl_list *list, struct wl_list *other); +#ifdef __GNUC__ #define __container_of(ptr, sample, member) \ - (void *)((char *)(ptr) - \ + (typeof(sample))((char *)(ptr) - \ ((char *)&(sample)->member - (char *)(sample))) +#else +#define __container_of(ptr, sample, member) \ + (void *)((char *)(ptr) - \ + ((char *)&(sample)->member - (char *)(sample))) +#endif #define wl_list_for_each(pos, head, member) \ for (pos = 0, pos = __container_of((head)->next, pos, member); \ -- 2.7.4