diff options
author | Heghedus Razvan <heghedus.razvan@gmail.com> | 2017-10-14 22:55:45 +0300 |
---|---|---|
committer | Heghedus Razvan <heghedus.razvan@gmail.com> | 2017-10-20 11:45:31 +0300 |
commit | bde25fe020d17bdfe2033e2fd86827f447b1f28b (patch) | |
tree | f97ecef235ea37e5231d9e6fe4f6ff3d68ea04a7 | |
parent | a339b10dcda358d6ff57c9c991bae0410e852541 (diff) |
Replace list_t with wl_list in wlr_multi_backend
Signed-off-by: Heghedus Razvan <heghedus.razvan@gmail.com>
-rw-r--r-- | backend/multi/backend.c | 30 | ||||
-rw-r--r-- | include/backend/multi.h | 4 |
2 files changed, 12 insertions, 22 deletions
diff --git a/backend/multi/backend.c b/backend/multi/backend.c index 5f745c40..5abc470a 100644 --- a/backend/multi/backend.c +++ b/backend/multi/backend.c @@ -13,14 +13,15 @@ struct subbackend_state { struct wl_listener input_remove; struct wl_listener output_add; struct wl_listener output_remove; + struct wl_list link; }; static bool multi_backend_start(struct wlr_backend *_backend) { struct wlr_multi_backend *backend = (struct wlr_multi_backend *)_backend; - for (size_t i = 0; i < backend->backends->length; ++i) { - struct subbackend_state *sub = backend->backends->items[i]; + struct subbackend_state *sub; + wl_list_for_each(sub, &backend->backends, link) { if (!wlr_backend_start(sub->backend)) { - wlr_log(L_ERROR, "Failed to initialize backend %zd", i); + wlr_log(L_ERROR, "Failed to initialize backend."); return false; } } @@ -29,20 +30,19 @@ static bool multi_backend_start(struct wlr_backend *_backend) { static void multi_backend_destroy(struct wlr_backend *_backend) { struct wlr_multi_backend *backend = (struct wlr_multi_backend *)_backend; - for (size_t i = 0; i < backend->backends->length; ++i) { - struct subbackend_state *sub = backend->backends->items[i]; + struct subbackend_state *sub; + wl_list_for_each(sub, &backend->backends, link) { wlr_backend_destroy(sub->backend); free(sub); } - list_free(backend->backends); wlr_session_destroy(backend->session); free(backend); } static struct wlr_egl *multi_backend_get_egl(struct wlr_backend *_backend) { struct wlr_multi_backend *backend = (struct wlr_multi_backend *)_backend; - for (size_t i = 0; i < backend->backends->length; ++i) { - struct subbackend_state *sub = backend->backends->items[i]; + struct subbackend_state *sub; + wl_list_for_each(sub, &backend->backends, link) { struct wlr_egl *egl = wlr_backend_get_egl(sub->backend); if (egl) { return egl; @@ -65,13 +65,7 @@ struct wlr_backend *wlr_multi_backend_create(struct wlr_session *session) { return NULL; } - backend->backends = list_create(); - if (!backend->backends) { - free(backend); - wlr_log(L_ERROR, "Backend allocation failed"); - return NULL; - } - + wl_list_init(&backend->backends); wlr_backend_init(&backend->backend, &backend_impl); backend->session = session; @@ -116,11 +110,7 @@ void wlr_multi_backend_add(struct wlr_backend *_multi, wlr_log(L_ERROR, "Could not add backend: allocation failed"); return; } - if (list_add(multi->backends, sub) == -1) { - wlr_log(L_ERROR, "Could not add backend: allocation failed"); - free(sub); - return; - } + wl_list_insert(&multi->backends, &sub->link); sub->backend = backend; sub->container = &multi->backend; diff --git a/include/backend/multi.h b/include/backend/multi.h index 2c409b3a..82f85016 100644 --- a/include/backend/multi.h +++ b/include/backend/multi.h @@ -3,14 +3,14 @@ #include <wlr/backend/interface.h> #include <wlr/backend/multi.h> -#include <wlr/util/list.h> #include <wlr/backend/session.h> +#include <wayland-util.h> struct wlr_multi_backend { struct wlr_backend backend; struct wlr_session *session; - list_t *backends; + struct wl_list backends; }; #endif |