[gtk/gtk-3-24] [quartz] Ensure GdkWindowQuartz members are either valid or NULL.



commit 749c8630736ad39bca6b2efc72b8e5a79208a203
Author: John Ralls <jralls ceridwen us>
Date:   Sun Jun 5 15:31:35 2022 -0700

    [quartz] Ensure GdkWindowQuartz members are either valid or NULL.

 gdk/quartz/gdkwindow-quartz.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c
index 1800ca83ea..5ea7df2e0b 100644
--- a/gdk/quartz/gdkwindow-quartz.c
+++ b/gdk/quartz/gdkwindow-quartz.c
@@ -279,6 +279,10 @@ gdk_window_impl_quartz_finalize (GObject *object)
       [impl->view release];
     }
 
+  impl->view = NULL;
+  impl->transient_for = NULL;
+  impl->toplevel = NULL;
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -376,6 +380,7 @@ gdk_window_impl_quartz_init (GdkWindowImplQuartz *impl)
   impl->type_hint = GDK_WINDOW_TYPE_HINT_NORMAL;
   impl->view      = NULL;
   impl->toplevel  = NULL;
+  impl->transient_for = NULL;
 }
 
 static gboolean
@@ -755,7 +760,7 @@ find_child_window_helper (GdkWindow *window,
                                            get_toplevel);
        }
     }
-  
+
   return window;
 }
 
@@ -1146,6 +1151,9 @@ gdk_quartz_window_destroy (GdkWindow *window,
       else if (impl->view)
        [impl->view removeFromSuperview];
 
+      impl->view = NULL;
+      impl->toplevel = NULL;
+
       GDK_QUARTZ_RELEASE_POOL;
     }
 }
@@ -1206,7 +1214,7 @@ gdk_window_quartz_show (GdkWindow *window, gboolean already_mapped)
 }
 
 /* Temporarily unsets the parent window, if the window is a
- * transient. 
+ * transient.
  */
 void
 _gdk_quartz_window_detach_from_parent (GdkWindow *window)


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