Procházet zdrojové kódy

X11 Segmentation fault with multiple windows and renderers (see #5256)

Sylvain před 3 roky
rodič
revize
85e6500065
1 změnil soubory, kde provedl 14 přidání a 2 odebrání
  1. 14 2
      src/video/x11/SDL_x11window.c

+ 14 - 2
src/video/x11/SDL_x11window.c

@@ -1659,9 +1659,15 @@ void
 X11_SetWindowMouseGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
 {
     SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
-    Display *display = data->videodata->display;
+    Display *display;
     SDL_bool oldstyle_fullscreen;
 
+    if (data == NULL) {
+        return;
+    }
+
+    display = data->videodata->display;
+
     /* ICCCM2.0-compliant window managers can handle fullscreen windows
        If we're using XVidMode to change resolution we need to confine
        the cursor so we don't pan around the virtual desktop.
@@ -1719,7 +1725,13 @@ void
 X11_SetWindowKeyboardGrab(_THIS, SDL_Window * window, SDL_bool grabbed)
 {
     SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
-    Display *display = data->videodata->display;
+    Display *display;
+
+    if (data == NULL) {
+        return;
+    }
+
+    display = data->videodata->display;
 
     if (grabbed) {
         /* If the window is unmapped, XGrab calls return GrabNotViewable,