summaryrefslogtreecommitdiff
path: root/tinywl.c
diff options
context:
space:
mode:
authorSimon Zeni <[email protected]>2022-06-23 12:23:37 -0400
committerSimon Ser <[email protected]>2022-06-28 13:43:36 +0000
commit43b052721ee72b4231431a353ce7371e3b2083ad (patch)
treeedec238c15ef26e0d28a11c4b980934c3f6e546d /tinywl.c
parent0c0db4372dfd39cd161d4ee4eac6d0b5787d6670 (diff)
tinywl: exit on backend, renderer or allocator creation failure
Diffstat (limited to 'tinywl.c')
-rw-r--r--tinywl.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/tinywl.c b/tinywl.c
index 2b58a4b..4fc8477 100644
--- a/tinywl.c
+++ b/tinywl.c
@@ -818,12 +818,21 @@ int main(int argc, char *argv[]) {
* backend based on the current environment, such as opening an X11 window
* if an X11 server is running. */
server.backend = wlr_backend_autocreate(server.wl_display);
+ if (server.backend == NULL) {
+ wlr_log(WLR_ERROR, "failed to create wlr_backend");
+ return 1;
+ }
/* Autocreates a renderer, either Pixman, GLES2 or Vulkan for us. The user
* can also specify a renderer using the WLR_RENDERER env var.
* The renderer is responsible for defining the various pixel formats it
* supports for shared memory, this configures that for clients. */
server.renderer = wlr_renderer_autocreate(server.backend);
+ if (server.renderer == NULL) {
+ wlr_log(WLR_ERROR, "failed to create wlr_renderer");
+ return 1;
+ }
+
wlr_renderer_init_wl_display(server.renderer, server.wl_display);
/* Autocreates an allocator for us.
@@ -832,6 +841,10 @@ int main(int argc, char *argv[]) {
* screen */
server.allocator = wlr_allocator_autocreate(server.backend,
server.renderer);
+ if (server.allocator == NULL) {
+ wlr_log(WLR_ERROR, "failed to create wlr_allocator");
+ return 1;
+ }
/* This creates some hands-off wlroots interfaces. The compositor is
* necessary for clients to allocate surfaces, the subcompositor allows to