[gtk+] GDK W32: Plug a resource leak



commit 174a36257f1118a631a79e53ac295af576203ec0
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date:   Mon Sep 4 14:42:11 2017 +0000

    GDK W32: Plug a resource leak
    
    Ensure that surfaces allocated in the impl are destroyed in finalize()
    
    https://bugzilla.gnome.org/show_bug.cgi?id=787089

 gdk/win32/gdkwindow-win32.c |   17 +++++++++++++++++
 1 files changed, 17 insertions(+), 0 deletions(-)
---
diff --git a/gdk/win32/gdkwindow-win32.c b/gdk/win32/gdkwindow-win32.c
index 88c18cc..24db897 100644
--- a/gdk/win32/gdkwindow-win32.c
+++ b/gdk/win32/gdkwindow-win32.c
@@ -236,6 +236,23 @@ gdk_window_impl_win32_finalize (GObject *object)
 
   g_free (window_impl->decorations);
 
+  if (window_impl->cache_surface)
+    {
+      cairo_surface_t_note_about_to_dereference (window_impl->cache_surface);
+      cairo_surface_destroy (window_impl->cache_surface);
+      window_impl->cache_surface = NULL;
+    }
+
+  if (window_impl->cairo_surface)
+    {
+      cairo_surface_t_note_about_to_dereference (window_impl->cairo_surface);
+      cairo_surface_destroy (window_impl->cairo_surface);
+      window_impl->cairo_surface = NULL;
+    }
+
+  g_assert (window_impl->transient_owner == NULL);
+  g_assert (window_impl->transient_children == NULL);
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 


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