video: NULL out pointer to freed window surface

This behavior matches SDL_RecreateWindow and makes it less likely that
another piece of code (e.g. a DestroyWindowFramebuffer implementation)
will attempt to use or free the stale surface pointer.
This commit is contained in:
Jay Petacat 2020-04-12 00:55:52 -04:00
parent abcc6706fd
commit 8a5ee3faf9
1 changed files with 2 additions and 0 deletions

View File

@ -2796,6 +2796,8 @@ SDL_DestroyWindow(SDL_Window * window)
if (window->surface) { if (window->surface) {
window->surface->flags &= ~SDL_DONTFREE; window->surface->flags &= ~SDL_DONTFREE;
SDL_FreeSurface(window->surface); SDL_FreeSurface(window->surface);
window->surface = NULL;
window->surface_valid = SDL_FALSE;
} }
if (_this->DestroyWindowFramebuffer) { if (_this->DestroyWindowFramebuffer) {
_this->DestroyWindowFramebuffer(_this, window); _this->DestroyWindowFramebuffer(_this, window);