diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index c0620967dc..01023753c6 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -695,7 +695,9 @@ void SDL_DelVideoDisplay(int index) SDL_SendDisplayEvent(&_this->displays[index], SDL_DISPLAYEVENT_DISCONNECTED, 0); SDL_free(_this->displays[index].driverdata); + _this->displays[index].driverdata = NULL; SDL_free(_this->displays[index].name); + _this->displays[index].name = NULL; if (index < (_this->num_displays - 1)) { SDL_memmove(&_this->displays[index], &_this->displays[index + 1], (_this->num_displays - index - 1) * sizeof(_this->displays[index])); } diff --git a/src/video/uikit/SDL_uikitmodes.m b/src/video/uikit/SDL_uikitmodes.m index 1b1b4de20b..97c59c250a 100644 --- a/src/video/uikit/SDL_uikitmodes.m +++ b/src/video/uikit/SDL_uikitmodes.m @@ -344,6 +344,7 @@ void UIKit_DelDisplay(UIScreen *uiscreen) if (data && data.uiscreen == uiscreen) { CFRelease(SDL_GetDisplayDriverData(i)); + SDL_GetDisplay(i)->driverdata = NULL; SDL_DelVideoDisplay(i); return; }