From dc33fb942d1af8c3da07f67d97b9a03e2e3ea38d Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Thu, 9 Apr 2015 21:13:20 +0200 Subject: [PATCH] Wayland: Fixed accessing not fully initialized subsystem if errors happened. The VideoInit() implementation returned 0 on errors instead of -1. --- src/video/wayland/SDL_waylandvideo.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/video/wayland/SDL_waylandvideo.c b/src/video/wayland/SDL_waylandvideo.c index e91374b63d819..2e74a086910a4 100644 --- a/src/video/wayland/SDL_waylandvideo.c +++ b/src/video/wayland/SDL_waylandvideo.c @@ -277,21 +277,19 @@ Wayland_VideoInit(_THIS) { SDL_VideoData *data = SDL_malloc(sizeof *data); if (data == NULL) - return 0; + return SDL_OutOfMemory(); memset(data, 0, sizeof *data); _this->driverdata = data; data->display = WAYLAND_wl_display_connect(NULL); if (data->display == NULL) { - SDL_SetError("Failed to connect to a Wayland display"); - return 0; + return SDL_SetError("Failed to connect to a Wayland display"); } data->registry = wl_display_get_registry(data->display); if (data->registry == NULL) { - SDL_SetError("Failed to get the Wayland registry"); - return 0; + return SDL_SetError("Failed to get the Wayland registry"); } wl_registry_add_listener(data->registry, ®istry_listener, data); @@ -304,8 +302,7 @@ Wayland_VideoInit(_THIS) data->xkb_context = WAYLAND_xkb_context_new(0); if (!data->xkb_context) { - SDL_SetError("Failed to create XKB context"); - return 0; + return SDL_SetError("Failed to create XKB context"); } Wayland_InitMouse();