aboutsummaryrefslogtreecommitdiff
path: root/backend/libinput/backend.c
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2017-06-09 17:52:11 -0400
committerDrew DeVault <sir@cmpwn.com>2017-06-13 08:10:36 -0400
commit59ceaf507e9a7c80e04460d1ae4946ce7b6f56ac (patch)
treedf3b5fcc06b47ca3a1beb9ecff01cbf4527473d4 /backend/libinput/backend.c
parent0e75d157f52db45a1af350574bd95cccbd09fa57 (diff)
Handle key presses
Diffstat (limited to 'backend/libinput/backend.c')
-rw-r--r--backend/libinput/backend.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/backend/libinput/backend.c b/backend/libinput/backend.c
index 3af08875..dc018b10 100644
--- a/backend/libinput/backend.c
+++ b/backend/libinput/backend.c
@@ -99,7 +99,12 @@ struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display,
struct wlr_backend *backend = wlr_backend_create(&backend_impl, state);
if (!backend) {
wlr_log(L_ERROR, "Allocation failed: %s", strerror(errno));
- return NULL;
+ goto error_state;
+ }
+
+ if (!(state->keyboards = list_create())) {
+ wlr_log(L_ERROR, "Allocation failed: %s", strerror(errno));
+ goto error_backend;
}
state->backend = backend;
@@ -107,7 +112,10 @@ struct wlr_backend *wlr_libinput_backend_create(struct wl_display *display,
state->udev = udev;
state->display = display;
- state->keyboards = list_create();
-
return backend;
+error_state:
+ free(state);
+error_backend:
+ wlr_backend_destroy(backend);
+ return NULL;
}