From 0e35f0be1f3cb9b4d726c4c938b7cc623359f1a1 Mon Sep 17 00:00:00 2001 From: Cacodemon345 Date: Fri, 26 Feb 2021 21:43:36 +0600 Subject: [PATCH] Fix KMSDRM-related warnings --- src/video/kmsdrm/SDL_kmsdrmvideo.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c index b52b545cb..d9850fecb 100644 --- a/src/video/kmsdrm/SDL_kmsdrmvideo.c +++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c @@ -1373,10 +1373,14 @@ KMSDRM_SetWindowGammaRamp(_THIS, SDL_Window * window, const Uint16 * ramp) SDL_VideoData *viddata = (SDL_VideoData*)windata->viddata; SDL_VideoDisplay *disp = SDL_GetDisplayForWindow(window); SDL_DisplayData* dispdata = (SDL_DisplayData*)disp->driverdata; - if (KMSDRM_drmModeCrtcSetGamma(viddata->drm_fd, dispdata->crtc->crtc_id, 256, &ramp[0*256], &ramp[1*256], &ramp[2*256]) == -1) + Uint16* tempRamp = SDL_calloc(3 * 2,256); + SDL_memcpy(tempRamp,ramp,3 * 2 * 256); + if (KMSDRM_drmModeCrtcSetGamma(viddata->drm_fd, dispdata->crtc->crtc_id, 256, &tempRamp[0*256], &tempRamp[1*256], &tempRamp[2*256]) == -1) { + SDL_free(tempRamp); return SDL_SetError("Failed to set gamma ramp"); } + SDL_free(tempRamp); return 0; }