Parcourir la source

Fixed crash when trying to disconnect secondary display on iOS

Deve il y a 2 mois
Parent
commit
934d6954e2
2 fichiers modifiés avec 3 ajouts et 0 suppressions
  1. 2 0
      src/video/SDL_video.c
  2. 1 0
      src/video/uikit/SDL_uikitmodes.m

+ 2 - 0
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]));
     }

+ 1 - 0
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;
         }