window: Free the allocated display if we fail to setup libxkbcommon
authorRob Bradford <rob@linux.intel.com>
Fri, 26 Jul 2013 15:29:43 +0000 (16:29 +0100)
committerKristian Høgsberg <krh@bitplanet.net>
Tue, 30 Jul 2013 18:05:42 +0000 (11:05 -0700)
clients/window.c

index 8d956ae..d9f7d5a 100644 (file)
@@ -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;