diff options
| author | Michael Forney <mforney@mforney.org> | 2019-06-01 15:11:48 -0700 |
|---|---|---|
| committer | Simon Ser <contact@emersion.fr> | 2019-06-05 09:58:14 +0000 |
| commit | 55d044810ca32ae24499d2c6aee6084d7e31d576 (patch) | |
| tree | 8a8ca16c2a45078ba8c0c2635b0a86547cd7889f /src | |
| parent | Add a missing -pthread to fix compile with slibtool. (diff) | |
| download | wayland-55d044810ca32ae24499d2c6aee6084d7e31d576.tar wayland-55d044810ca32ae24499d2c6aee6084d7e31d576.tar.gz wayland-55d044810ca32ae24499d2c6aee6084d7e31d576.tar.bz2 wayland-55d044810ca32ae24499d2c6aee6084d7e31d576.tar.lz wayland-55d044810ca32ae24499d2c6aee6084d7e31d576.tar.xz wayland-55d044810ca32ae24499d2c6aee6084d7e31d576.tar.zst wayland-55d044810ca32ae24499d2c6aee6084d7e31d576.zip | |
Use wl_container_of internally
Rather than have two versions of the macro with slightly different
interfaces, just use wl_container_of internally.
This also removes use of statement expressions, a GNU C extension.
Signed-off-by: Michael Forney <mforney@mforney.org>
Diffstat (limited to 'src')
| -rw-r--r-- | src/event-loop.c | 4 | ||||
| -rw-r--r-- | src/wayland-client.c | 7 | ||||
| -rw-r--r-- | src/wayland-private.h | 4 | ||||
| -rw-r--r-- | src/wayland-server.c | 4 |
4 files changed, 8 insertions, 11 deletions
diff --git a/src/event-loop.c b/src/event-loop.c index 54c8474..017ab27 100644 --- a/src/event-loop.c +++ b/src/event-loop.c @@ -595,8 +595,8 @@ wl_event_loop_dispatch_idle(struct wl_event_loop *loop) struct wl_event_source_idle *source; while (!wl_list_empty(&loop->idle_list)) { - source = container_of(loop->idle_list.next, - struct wl_event_source_idle, base.link); + source = wl_container_of(loop->idle_list.next, + source, base.link); source->func(source->base.data); wl_event_source_remove(&source->base); } diff --git a/src/wayland-client.c b/src/wayland-client.c index b0805f1..38756f1 100644 --- a/src/wayland-client.c +++ b/src/wayland-client.c @@ -298,8 +298,8 @@ wl_event_queue_release(struct wl_event_queue *queue) struct wl_closure *closure; while (!wl_list_empty(&queue->event_list)) { - closure = container_of(queue->event_list.next, - struct wl_closure, link); + closure = wl_container_of(queue->event_list.next, + closure, link); wl_list_remove(&closure->link); destroy_queued_closure(closure); } @@ -1400,8 +1400,7 @@ dispatch_event(struct wl_display *display, struct wl_event_queue *queue) int opcode; bool proxy_destroyed; - closure = container_of(queue->event_list.next, - struct wl_closure, link); + closure = wl_container_of(queue->event_list.next, closure, link); wl_list_remove(&closure->link); opcode = closure->opcode; diff --git a/src/wayland-private.h b/src/wayland-private.h index 29516ec..8a97fab 100644 --- a/src/wayland-private.h +++ b/src/wayland-private.h @@ -42,10 +42,6 @@ #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) );}) - #define WL_MAP_SERVER_SIDE 0 #define WL_MAP_CLIENT_SIDE 1 #define WL_SERVER_ID_START 0xff000000 diff --git a/src/wayland-server.c b/src/wayland-server.c index 884a5a3..83b984f 100644 --- a/src/wayland-server.c +++ b/src/wayland-server.c @@ -1899,7 +1899,9 @@ wl_client_get_link(struct wl_client *client) WL_EXPORT struct wl_client * wl_client_from_link(struct wl_list *link) { - return container_of(link, struct wl_client, link); + struct wl_client *client; + + return wl_container_of(link, client, link); } /** Add a listener for the client's resource creation signal |
