diff options
author | Matthias Clasen <mclasen@redhat.com> | 2016-06-05 19:34:30 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2016-06-05 20:00:43 -0400 |
commit | eff09fabfad0b46b985b3af21e9c1e1d875c1a90 (patch) | |
tree | 61eb4032503dcc2ae3f91887d79ac2503abbff06 | |
parent | 9c50b8bc2f93c487064a45db471b3035e3a8ccdb (diff) | |
download | gtk+-eff09fabfad0b46b985b3af21e9c1e1d875c1a90.tar.gz |
menu: Free gadgets in finalize
This is the right place to do this.
-rw-r--r-- | gtk/gtkmenu.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/gtk/gtkmenu.c b/gtk/gtkmenu.c index 5bc8501bbd..8531cf7080 100644 --- a/gtk/gtkmenu.c +++ b/gtk/gtkmenu.c @@ -214,6 +214,7 @@ static void gtk_menu_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); +static void gtk_menu_finalize (GObject *object); static void gtk_menu_set_child_property(GtkContainer *container, GtkWidget *child, guint property_id, @@ -511,6 +512,7 @@ gtk_menu_class_init (GtkMenuClass *class) gobject_class->set_property = gtk_menu_set_property; gobject_class->get_property = gtk_menu_get_property; + gobject_class->finalize = gtk_menu_finalize; widget_class->destroy = gtk_menu_destroy; widget_class->realize = gtk_menu_realize; @@ -1208,10 +1210,19 @@ gtk_menu_destroy (GtkWidget *widget) priv->position_func_data_destroy = NULL; } + GTK_WIDGET_CLASS (gtk_menu_parent_class)->destroy (widget); +} + +static void +gtk_menu_finalize (GObject *object) +{ + GtkMenu *menu = GTK_MENU (object); + GtkMenuPrivate *priv = menu->priv; + g_clear_object (&priv->top_arrow_gadget); g_clear_object (&priv->bottom_arrow_gadget); - GTK_WIDGET_CLASS (gtk_menu_parent_class)->destroy (widget); + G_OBJECT_CLASS (gtk_menu_parent_class)->finalize (object); } static void |