Define our own container_of as well
authorKristian Høgsberg <krh@bitplanet.net>
Sat, 20 Oct 2012 03:05:37 +0000 (23:05 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 20 Oct 2012 03:05:37 +0000 (23:05 -0400)
Don't rely on libwayland-client/server to define this for us.

clients/window.h
src/compositor.h

index 4dd4c20..3d35396 100644 (file)
 
 #define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
 
+#define container_of(ptr, type, member) ({                             \
+       const __typeof__( ((type *)0)->member ) *__mptr = (ptr);        \
+       (type *)( (char *)__mptr - offsetof(type,member) );})
+
 struct window;
 struct widget;
 struct display;
index 19ab11e..3176bfd 100644 (file)
 
 #define ARRAY_LENGTH(a) (sizeof (a) / sizeof (a)[0])
 
+#define container_of(ptr, type, member) ({                             \
+       const __typeof__( ((type *)0)->member ) *__mptr = (ptr);        \
+       (type *)( (char *)__mptr - offsetof(type,member) );})
+
 struct weston_transform {
        struct weston_matrix matrix;
        struct wl_list link;