Fixed double-free when using window surfaces

This commit is contained in:
Sam Lantinga
2025-09-18 20:26:19 -07:00
parent c25a0b046a
commit 0eff3fe558

View File

@@ -4429,6 +4429,8 @@ void SDL_DestroyWindow(SDL_Window *window)
SDL_SendWindowEvent(window, SDL_EVENT_WINDOW_DESTROYED, 0, 0);
SDL_DestroyWindowSurface(window);
SDL_Renderer *renderer = SDL_GetRenderer(window);
if (renderer) {
SDL_DestroyRendererWithoutFreeing(renderer);
@@ -4469,8 +4471,6 @@ void SDL_DestroyWindow(SDL_Window *window)
SDL_SetMouseFocus(NULL);
}
SDL_DestroyWindowSurface(window);
// Make no context current if this is the current context window
if (window->flags & SDL_WINDOW_OPENGL) {
if (_this->current_glwin == window) {