summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlberts Muktupāvels <alberts.muktupavels@gmail.com>2017-05-24 12:25:52 +0300
committerAlberts Muktupāvels <alberts.muktupavels@gmail.com>2017-05-24 12:27:19 +0300
commit7ea3203f5459e206d0d15fe115cb08a54772cd43 (patch)
treeda229d48a2adba955b019acdf200f64b303ed30e
parent2cff39ce088b6ae62597a2a7b9c7cb3cb050ea43 (diff)
downloadlibwnck-7ea3203f5459e206d0d15fe115cb08a54772cd43.tar.gz
wnck-image-menu-item: fix memory leak
-rw-r--r--libwnck/wnck-image-menu-item.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/libwnck/wnck-image-menu-item.c b/libwnck/wnck-image-menu-item.c
index b1d4c26..e8e6d87 100644
--- a/libwnck/wnck-image-menu-item.c
+++ b/libwnck/wnck-image-menu-item.c
@@ -36,6 +36,18 @@ struct _WnckImageMenuItem
G_DEFINE_TYPE (WnckImageMenuItem, wnck_image_menu_item, GTK_TYPE_MENU_ITEM)
static void
+wnck_image_menu_item_finalize (GObject *object)
+{
+ WnckImageMenuItem *item;
+
+ item = WNCK_IMAGE_MENU_ITEM (object);
+
+ g_clear_pointer (&item->label, g_free);
+
+ G_OBJECT_CLASS (wnck_image_menu_item_parent_class)->finalize (object);
+}
+
+static void
wnck_image_menu_item_get_preferred_width (GtkWidget *widget,
gint *minimum,
gint *natural)
@@ -146,12 +158,16 @@ wnck_image_menu_item_set_label (GtkMenuItem *menu_item,
static void
wnck_image_menu_item_class_init (WnckImageMenuItemClass *item_class)
{
+ GObjectClass *object_class;
GtkWidgetClass *widget_class;
GtkMenuItemClass *menu_item_class;
+ object_class = G_OBJECT_CLASS (item_class);
widget_class = GTK_WIDGET_CLASS (item_class);
menu_item_class = GTK_MENU_ITEM_CLASS (item_class);
+ object_class->finalize = wnck_image_menu_item_finalize;
+
widget_class->get_preferred_width = wnck_image_menu_item_get_preferred_width;
widget_class->size_allocate = wnck_image_menu_item_size_allocate;