diff options
-rw-r--r-- | include/ouroboros/list.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/ouroboros/list.h b/include/ouroboros/list.h index 8811e291..40627651 100644 --- a/include/ouroboros/list.h +++ b/include/ouroboros/list.h @@ -26,6 +26,7 @@ #include <stdbool.h> #include <stdint.h> +#include <stddef.h> #include <sys/types.h> struct list_head { @@ -34,7 +35,7 @@ struct list_head { }; #define list_entry(ptr, type, mbr) \ - ((type *)((uint8_t *)(ptr)-(size_t)(&((type *)0)->mbr))) + ((type *)((uint8_t *)(ptr) - offsetof(type, mbr))) #define list_first_entry(ptr, type, mbr) \ list_entry((ptr)->nxt, type, mbr) |