mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-16 11:06:49 +01:00
Wayland: Fixed crash if allocating memory for cursor failed.
Also added missing error message if first allocation failed.
This commit is contained in:
parent
e8b4368512
commit
ab8be04310
@ -159,6 +159,11 @@ Wayland_CreateCursor(SDL_Surface *surface, int hot_x, int hot_y)
|
|||||||
SDL_VideoDevice *vd = SDL_GetVideoDevice ();
|
SDL_VideoDevice *vd = SDL_GetVideoDevice ();
|
||||||
SDL_VideoData *wd = (SDL_VideoData *) vd->driverdata;
|
SDL_VideoData *wd = (SDL_VideoData *) vd->driverdata;
|
||||||
Wayland_CursorData *data = calloc (1, sizeof (Wayland_CursorData));
|
Wayland_CursorData *data = calloc (1, sizeof (Wayland_CursorData));
|
||||||
|
if (!data) {
|
||||||
|
SDL_OutOfMemory();
|
||||||
|
free(cursor);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
cursor->driverdata = (void *) data;
|
cursor->driverdata = (void *) data;
|
||||||
|
|
||||||
/* Assume ARGB8888 */
|
/* Assume ARGB8888 */
|
||||||
@ -187,6 +192,8 @@ Wayland_CreateCursor(SDL_Surface *surface, int hot_x, int hot_y)
|
|||||||
data->hot_y = hot_y;
|
data->hot_y = hot_y;
|
||||||
data->w = surface->w;
|
data->w = surface->w;
|
||||||
data->h = surface->h;
|
data->h = surface->h;
|
||||||
|
} else {
|
||||||
|
SDL_OutOfMemory();
|
||||||
}
|
}
|
||||||
|
|
||||||
return cursor;
|
return cursor;
|
||||||
@ -200,6 +207,11 @@ CreateCursorFromWlCursor(SDL_VideoData *d, struct wl_cursor *wlcursor)
|
|||||||
cursor = calloc(1, sizeof (*cursor));
|
cursor = calloc(1, sizeof (*cursor));
|
||||||
if (cursor) {
|
if (cursor) {
|
||||||
Wayland_CursorData *data = calloc (1, sizeof (Wayland_CursorData));
|
Wayland_CursorData *data = calloc (1, sizeof (Wayland_CursorData));
|
||||||
|
if (!data) {
|
||||||
|
SDL_OutOfMemory();
|
||||||
|
free(cursor);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
cursor->driverdata = (void *) data;
|
cursor->driverdata = (void *) data;
|
||||||
|
|
||||||
data->buffer = WAYLAND_wl_cursor_image_get_buffer(wlcursor->images[0]);
|
data->buffer = WAYLAND_wl_cursor_image_get_buffer(wlcursor->images[0]);
|
||||||
|
Loading…
Reference in New Issue
Block a user