From 1a722ef500ac2e449837b46923604714845b2494 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Wed, 8 Nov 2023 14:26:07 -0800 Subject: [PATCH] Fixed a memory leak at window creation. Windows updates the desktop display mode once at video init (in WIN_InitModes()) and once when creating a window (in WIN_RefreshDisplays()) Fixes https://github.com/libsdl-org/SDL/issues/7982 Fixes https://github.com/libsdl-org/SDL/issues/8189 (cherry picked from commit bea34c53804ada8d90c94aba27262635513452d3) (cherry picked from commit 0ec1209eab437ebf49506f1649199f0aec9c54cb) --- src/video/SDL_video.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 8065a0b8cf..8d6491d53a 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -825,6 +825,9 @@ void SDL_SetCurrentDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode void SDL_SetDesktopDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode *mode) { + if (display->desktop_mode.driverdata) { + SDL_free(display->desktop_mode.driverdata); + } SDL_memcpy(&display->desktop_mode, mode, sizeof(*mode)); }