[gtk+] gdkwindow: plug memory leak



commit 2d70d8fa36526563a875c32e227cc024984e0001
Author: Xan Lopez <xan igalia com>
Date:   Mon Dec 19 19:25:02 2011 +0100

    gdkwindow: plug memory leak
    
    ==23282== 64 bytes in 2 blocks are definitely lost in loss record 8,069 of 13,389
    ==23282==    at 0x4A074CD: malloc (vg_replace_malloc.c:236)
    ==23282==    by 0x39A1C3E2EA: cairo_region_create (cairo-region.c:196)
    ==23282==    by 0x6D9AF3D: recompute_visible_regions_internal (gdkwindow.c:964)
    ==23282==    by 0x6D9B4B8: recompute_visible_regions (gdkwindow.c:1126)
    ==23282==    by 0x6DA3450: gdk_window_hide (gdkwindow.c:5689)
    ==23282==    by 0x6D9CED9: _gdk_window_destroy_hierarchy (gdkwindow.c:2042)
    ==23282==    by 0x6D9D040: gdk_window_destroy (gdkwindow.c:2109)
    ==23282==    by 0x655B5E4: gtk_entry_unrealize (gtkentry.c:3012)
    ==23282==    by 0x7068BF3: g_cclosure_marshal_VOID__VOID (gmarshal.c:85)
    ==23282==    by 0x706710B: g_type_class_meta_marshal (gclosure.c:885)
    ==23282==    by 0x7066DF9: g_closure_invoke (gclosure.c:774)
    ==23282==    by 0x7080585: signal_emit_unlocked_R (gsignal.c:3340)
    ==23282==    by 0x707F619: g_signal_emit_valist (gsignal.c:3033)
    ==23282==    by 0x707FB71: g_signal_emit (gsignal.c:3090)
    ==23282==    by 0x679E243: gtk_widget_unrealize (gtkwidget.c:4458)
    ==23282==    by 0x64E83C7: gtk_bin_forall (gtkbin.c:172)
    ==23282==    by 0x6548BBD: gtk_container_forall (gtkcontainer.c:2014)
    ==23282==    by 0x67A966D: gtk_widget_real_unrealize (gtkwidget.c:10253)
    ==23282==    by 0x672D002: gtk_tool_item_unrealize (gtktoolitem.c:474)
    ==23282==    by 0x7068BF3: g_cclosure_marshal_VOID__VOID (gmarshal.c:85)
    
    https://bugzilla.gnome.org/show_bug.cgi?id=666552

 gdk/gdkwindow.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
---
diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c
index efdddbe..c0e9236 100644
--- a/gdk/gdkwindow.c
+++ b/gdk/gdkwindow.c
@@ -562,6 +562,9 @@ gdk_window_finalize (GObject *object)
   if (window->devices_inside)
     g_list_free (window->devices_inside);
 
+  if (window->layered_region)
+      cairo_region_destroy (window->layered_region);
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 



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