From bea34c53804ada8d90c94aba27262635513452d3 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
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
---
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 aa1fee7298c6..df0ad2351137 100644
--- a/src/video/SDL_video.c
+++ b/src/video/SDL_video.c
@@ -1164,6 +1164,9 @@ const SDL_DisplayMode *SDL_GetClosestFullscreenDisplayMode(SDL_DisplayID display
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));
display->desktop_mode.displayID = display->id;
SDL_FinalizeDisplayMode(&display->desktop_mode);