From 5ab9c75d5979b5c6a4bc53ce9bb118c32e6e9aa6 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Fri, 26 Jul 2013 16:29:43 +0100 Subject: [PATCH] window: Free the allocated display if we fail to setup libxkbcommon --- clients/window.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/clients/window.c b/clients/window.c index 8d956aed..d9f7d5ae 100644 --- a/clients/window.c +++ b/clients/window.c @@ -4970,6 +4970,13 @@ display_create(int *argc, char *argv[]) return NULL; } + d->xkb_context = xkb_context_new(0); + if (d->xkb_context == NULL) { + fprintf(stderr, "Failed to create XKB context\n"); + free(d); + return NULL; + } + d->epoll_fd = os_epoll_create_cloexec(); d->display_fd = wl_display_get_fd(d->display); d->display_task.run = handle_display_data; @@ -4981,12 +4988,6 @@ display_create(int *argc, char *argv[]) wl_list_init(&d->output_list); wl_list_init(&d->global_list); - d->xkb_context = xkb_context_new(0); - if (d->xkb_context == NULL) { - fprintf(stderr, "Failed to create XKB context\n"); - return NULL; - } - d->workspace = 0; d->workspace_count = 1;