diff options
author | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2015-07-28 06:51:14 -0300 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2015-07-28 07:03:09 -0300 |
commit | 317ba620e21340286602ac4d40bee641f9c61903 (patch) | |
tree | a69bff329446bc7f5f2575eba44d885d6cb42ce8 /gtk/gtkplacesviewrow.c | |
parent | a5e762e6a736ebaec8e32afb823f737d7b7def68 (diff) | |
download | gtk+-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.c | 17 |
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; |