Commit 0e35f0be1f3cb9b4d726c4c938b7cc623359f1a1

Cacodemon345 2021-02-26T21:43:36

Fix KMSDRM-related warnings

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
index b52b545..d9850fe 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;
 }