[gtk+] GtkMenuSectionBox: don't leak



commit effc7514e79c5be31328f18a74b8d97a9ed20a4d
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Apr 29 10:18:22 2014 -0400

    GtkMenuSectionBox: don't leak
    
    This wasn't fully fleshed out yet.

 gtk/gtkmenusectionbox.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkmenusectionbox.c b/gtk/gtkmenusectionbox.c
index 76640f9..8891f59 100644
--- a/gtk/gtkmenusectionbox.c
+++ b/gtk/gtkmenusectionbox.c
@@ -293,6 +293,24 @@ gtk_menu_section_box_dispose (GObject *object)
       box->separator_sync_idle = 0;
     }
 
+  if (box->separator)
+    {
+      gtk_widget_destroy (box->separator);
+      box->separator = NULL;
+    }
+
+  if (box->size_group)
+    {
+      g_object_unref (box->size_group);
+      box->size_group = NULL;
+    }
+
+  if (box->tracker)
+    {
+      gtk_menu_tracker_free (box->tracker);
+      box->tracker = NULL;
+    }
+
   G_OBJECT_CLASS (gtk_menu_section_box_parent_class)->dispose (object);
 }
 
@@ -416,6 +434,8 @@ gtk_menu_section_box_new_section (GtkMenuTrackerItem *item,
       gtk_widget_show (box->separator);
     }
 
+  g_object_add_weak_pointer (G_OBJECT (box->separator), (gpointer *)&(box->separator));
+
   box->tracker = gtk_menu_tracker_new_for_item_link (item, G_MENU_LINK_SECTION, FALSE,
                                                      gtk_menu_section_box_insert_func,
                                                      gtk_menu_section_box_remove_func,


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