summaryrefslogtreecommitdiff
path: root/gtk/gtkplacesviewrow.c
diff options
context:
space:
mode:
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2015-07-28 06:51:14 -0300
committerGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>2015-07-28 07:03:09 -0300
commit317ba620e21340286602ac4d40bee641f9c61903 (patch)
treea69bff329446bc7f5f2575eba44d885d6cb42ce8 /gtk/gtkplacesviewrow.c
parenta5e762e6a736ebaec8e32afb823f737d7b7def68 (diff)
downloadgtk+-317ba620e21340286602ac4d40bee641f9c61903.tar.gz
placesview: plug some memory leaks
The GFile containing the Computer item was not properly dereferenced, so plug that leak by both dereferencing it and adding some reference management on GtkPlacesViewRow.
Diffstat (limited to 'gtk/gtkplacesviewrow.c')
-rw-r--r--gtk/gtkplacesviewrow.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/gtk/gtkplacesviewrow.c b/gtk/gtkplacesviewrow.c
index 97ce9b67c7..89f20527eb 100644
--- a/gtk/gtkplacesviewrow.c
+++ b/gtk/gtkplacesviewrow.c
@@ -57,6 +57,16 @@ enum {
static GParamSpec *properties [LAST_PROP];
static void
+gtk_places_view_row_finalize (GObject *object)
+{
+ GtkPlacesViewRow *self = GTK_PLACES_VIEW_ROW (object);
+
+ g_clear_object (&self->volume);
+ g_clear_object (&self->mount);
+ g_clear_object (&self->file);
+}
+
+static void
gtk_places_view_row_get_property (GObject *object,
guint prop_id,
GValue *value,
@@ -125,16 +135,16 @@ gtk_places_view_row_set_property (GObject *object,
break;
case PROP_VOLUME:
- self->volume = g_value_get_object (value);
+ g_set_object (&self->volume, g_value_get_object (value));
break;
case PROP_MOUNT:
- self->mount = g_value_get_object (value);
+ g_set_object (&self->mount, g_value_get_object (value));
gtk_widget_set_visible (GTK_WIDGET (self->eject_button), self->mount != NULL);
break;
case PROP_FILE:
- self->file = g_value_get_object (value);
+ g_set_object (&self->file, g_value_get_object (value));
break;
default:
@@ -148,6 +158,7 @@ gtk_places_view_row_class_init (GtkPlacesViewRowClass *klass)
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ object_class->finalize = gtk_places_view_row_finalize;
object_class->get_property = gtk_places_view_row_get_property;
object_class->set_property = gtk_places_view_row_set_property;