gtkmodelbutton: Plug a leak
authorCarlos Garnacho <carlosg@gnome.org>
Thu, 25 Jun 2015 12:56:59 +0000 (14:56 +0200)
committerCarlos Garnacho <carlosg@gnome.org>
Thu, 25 Jun 2015 13:09:56 +0000 (15:09 +0200)
The private struct had some data that needed freeing, but this widget
didn't have any destroy/dispose/finalize handlers.

gtk/gtkmodelbutton.c

index a3c62bc52e043ca374de122b4026a48339402be3..604d422f632ce6cc0ff740cd90816af07d9d2b26 100644 (file)
@@ -794,6 +794,16 @@ gtk_model_button_draw (GtkWidget *widget,
   return FALSE;
 }
 
+static void
+gtk_model_button_destroy (GtkWidget *widget)
+{
+  GtkModelButton *model_button = GTK_MODEL_BUTTON (widget);
+
+  g_clear_pointer (&model_button->menu_name, g_free);
+
+  GTK_WIDGET_CLASS (gtk_model_button_parent_class)->destroy (widget);
+}
+
 static void
 gtk_model_button_clicked (GtkButton *button)
 {
@@ -833,6 +843,7 @@ gtk_model_button_class_init (GtkModelButtonClass *class)
   widget_class->get_preferred_height_and_baseline_for_width = gtk_model_button_get_preferred_height_and_baseline_for_width;
   widget_class->size_allocate = gtk_model_button_size_allocate;
   widget_class->draw = gtk_model_button_draw;
+  widget_class->destroy = gtk_model_button_destroy;
 
   button_class->clicked = gtk_model_button_clicked;