1
0
mirror of https://github.com/falk-werner/webfuse-provider synced 2026-03-02 04:09:18 +00:00

chore(WF_CONTAINER_OF): makes WF_CONTAINER_OF use typeof, if available (#26)

* makes WF_CONTAINER_OF use typeof, if available

* convertss WF_CONTAINER_OF to lower case

* fixes include guard
This commit is contained in:
Falk Werner
2019-04-25 20:08:34 +02:00
committed by GitHub
parent f4180224b2
commit a717248e80
6 changed files with 19 additions and 11 deletions

View File

@@ -7,7 +7,15 @@
#include <cstddef>
#endif
#define WF_CONTAINER_OF(pointer, type, member) \
#ifdef __GNUC__
#define wf_container_of(pointer, type, member) \
({ \
const typeof( ((type *)0)->member ) * __member = (pointer); \
(type *)( (char *)__member - offsetof(type, member) ); \
})
#else
#define wf_container_of(pointer, type, member) \
(type *) (((char *) pointer) - offsetof(type, member))
#endif
#endif

View File

@@ -9,7 +9,7 @@ void wf_message_queue_cleanup(
while (NULL != item)
{
struct wf_slist_item * next = item->next;
struct wf_message * message = WF_CONTAINER_OF(item, struct wf_message, item);
struct wf_message * message = wf_container_of(item, struct wf_message, item);
wf_message_dispose(message);
item = next;
}