[gtk+/gtk-3-18] wayland: Avoid a crash



commit 1e30fe1c3bd8cac32cfdbc112e94f5417a433777
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Nov 19 14:39:42 2015 -0500

    wayland: Avoid a crash
    
    We can end up in situations where NULL gets passed to
    get_transient_parent(). Embrace it instead of avoiding it.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=758327

 gdk/wayland/gdkwindow-wayland.c |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)
---
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index a71e60e..453c4f3 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -1274,7 +1274,7 @@ should_map_as_popup (GdkWindow *window)
 static GdkWindow *
 get_popup_parent (GdkWindow *window)
 {
-  do
+  while (window)
     {
       GdkWindowImplWayland *impl = GDK_WINDOW_IMPL_WAYLAND (window->impl);
 
@@ -1283,7 +1283,6 @@ get_popup_parent (GdkWindow *window)
 
       window = impl->transient_for;
     }
-  while (window);
 
   return NULL;
 }
@@ -1351,9 +1350,7 @@ gdk_wayland_window_map (GdkWindow *window)
             }
 
           if (transient_for)
-            transient_for = gdk_window_get_toplevel (transient_for);
-          if (transient_for)
-            transient_for = get_popup_parent (transient_for);
+            transient_for = get_popup_parent (gdk_window_get_toplevel (transient_for));
 
           /* If the position was not explicitly set, start the popup at the
            * position of the device that holds the grab.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]