aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorOskari Timperi <oskari.timperi@iki.fi>2014-05-25 12:57:45 +0300
committerOskari Timperi <oskari.timperi@iki.fi>2014-05-25 12:57:45 +0300
commit0a6782b6bbf6b5d509ba0851659986afdd60b372 (patch)
treecd5798c268db48a52c52b820c7c47b666c378502 /src
parent0bfcaac980eaa3f12cd7e72485bc2e7ce8400982 (diff)
downloadlibuvh-0a6782b6bbf6b5d509ba0851659986afdd60b372.tar.gz
libuvh-0a6782b6bbf6b5d509ba0851659986afdd60b372.zip
misc
Diffstat (limited to 'src')
-rw-r--r--src/uvh.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/uvh.c b/src/uvh.c
index 42dba30..4353b3e 100644
--- a/src/uvh.c
+++ b/src/uvh.c
@@ -10,10 +10,13 @@
#ifndef container_of
#ifdef __GNUC__
-#define container_of(ptr, type, member) ({ \
- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
+#define member_type(type, member) __typeof__ (((type *)0)->member)
+#else
+#define member_type(type, member) const void
#endif
+
+#define container_of(ptr, type, member) ((type *)( \
+ (char *)(member_type(type, member) *){ ptr } - offsetof(type, member)))
#endif
#define LOG(LEVEL, FMT, args...) \