From 6a6bd4a7f12e7bef1ab46616e15d1ddd2d7ce47a Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Tue, 31 Aug 2021 17:08:35 +0300 Subject: [PATCH] backend/headless: fix regression with common renderer and allocator Commit c82f37542d3a ("backend/headless: use common renderer and allocator") changed the error handling for backend allocator failure cases. Let's fix the issue by moving the wl_signal_add() call later. This was also done earlier in wlr_headless_backend_create_with_renderer(). Fixes: c82f37542d3a ("backend/headless: use common renderer and allocator") --- backend/headless/backend.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backend/headless/backend.c b/backend/headless/backend.c index 51217f8b56..4cae87c30e 100644 --- a/backend/headless/backend.c +++ b/backend/headless/backend.c @@ -134,7 +134,6 @@ static bool backend_init(struct wlr_headless_backend *backend, } else { backend->parent_renderer = renderer; backend->parent_renderer_destroy.notify = handle_renderer_destroy; - wl_signal_add(&renderer->events.destroy, &backend->parent_renderer_destroy); } if (backend_get_allocator(&backend->backend) == NULL) { @@ -142,6 +141,11 @@ static bool backend_init(struct wlr_headless_backend *backend, return false; } + if (renderer != NULL) { + wl_signal_add(&renderer->events.destroy, + &backend->parent_renderer_destroy); + } + backend->display_destroy.notify = handle_display_destroy; wl_display_add_destroy_listener(display, &backend->display_destroy);