From 3d3494a15bfdeda514b7fa334192483ecd3c7b59 Mon Sep 17 00:00:00 2001 From: "Jasper St. Pierre" Date: Sun, 18 Dec 2011 23:30:26 -0500 Subject: [PATCH] st-icon: Fix memory leak We were never freeing the dup'd icon_name string for an StIcon. --- src/st/st-icon.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/st/st-icon.c b/src/st/st-icon.c index f93eff58a..e5643ccc9 100644 --- a/src/st/st-icon.c +++ b/src/st/st-icon.c @@ -174,6 +174,20 @@ st_icon_dispose (GObject *gobject) G_OBJECT_CLASS (st_icon_parent_class)->dispose (gobject); } +static void +st_icon_finalize (GObject *object) +{ + StIconPrivate *priv = ST_ICON (gobject)->priv; + + if (priv->icon_name) + { + g_free (priv->icon_name); + priv->icon_name = NULL; + } + + G_OBJECT_CLASS (st_icon_parent_class)->finalize (gobject); +} + static void st_icon_get_preferred_height (ClutterActor *actor, gfloat for_width, @@ -317,6 +331,7 @@ st_icon_class_init (StIconClass *klass) object_class->get_property = st_icon_get_property; object_class->set_property = st_icon_set_property; object_class->dispose = st_icon_dispose; + object_class->finalize = st_icon_finalize; actor_class->get_preferred_height = st_icon_get_preferred_height; actor_class->get_preferred_width = st_icon_get_preferred_width;