Commit 55d04481 authored by Michael Forney's avatar Michael Forney Committed by Simon Ser

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's avatarMichael Forney <mforney@mforney.org>
parent 2485a5c2
Pipeline #40633 passed with stage
in 2 minutes and 4 seconds
......@@ -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);
}
......
......@@ -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;
......
......@@ -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
......
......@@ -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
......
......@@ -47,7 +47,7 @@ static void
client_destroy_notify(struct wl_listener *l, void *data)
{
struct client_destroy_listener *listener =
container_of(l, struct client_destroy_listener, listener);
wl_container_of(l, listener, listener);
listener->done = 1;
}
......
......@@ -60,7 +60,7 @@ display_destroy_notify(struct wl_listener *l, void *data)
{
struct display_destroy_listener *listener;
listener = container_of(l, struct display_destroy_listener, listener);
listener = wl_container_of(l, listener, listener);
listener->done = 1;
}
......
......@@ -339,7 +339,7 @@ static void
event_loop_destroy_notify(struct wl_listener *l, void *data)
{
struct event_loop_destroy_listener *listener =
container_of(l, struct event_loop_destroy_listener, listener);
wl_container_of(l, listener, listener);
listener->done = 1;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment