aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMichael Forney <mforney@mforney.org>2019-06-01 15:11:48 -0700
committerSimon Ser <contact@emersion.fr>2019-06-05 09:58:14 +0000
commit55d044810ca32ae24499d2c6aee6084d7e31d576 (patch)
tree8a8ca16c2a45078ba8c0c2635b0a86547cd7889f /src
parentAdd a missing -pthread to fix compile with slibtool. (diff)
downloadwayland-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.c4
-rw-r--r--src/wayland-client.c7
-rw-r--r--src/wayland-private.h4
-rw-r--r--src/wayland-server.c4
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