filebrowser: Don't leak GFiles

e2f792359a
This commit is contained in:
JosephMcc
2017-02-13 15:57:16 -08:00
parent fe9e6ac91c
commit fa31c65c2f
5 changed files with 116 additions and 67 deletions

View File

@@ -2493,6 +2493,11 @@ file_open (XedFileBrowserWidget *obj,
{
g_signal_emit (obj, signals[LOCATION_ACTIVATED], 0, location);
}
if (location)
{
g_object_unref (location);
}
}
static gboolean
@@ -2526,6 +2531,7 @@ directory_open (XedFileBrowserWidget *obj,
}
g_free (uri);
g_object_unref (location);
}
return result;
@@ -2577,11 +2583,6 @@ on_virtual_root_changed (XedFileBrowserStore *model,
XedFileBrowserWidget *obj)
{
GtkTreeIter iter;
GFile *location;
GtkTreeIter root;
GtkAction *action;
Location *loc;
GdkPixbuf *pixbuf;
if (gtk_tree_view_get_model (GTK_TREE_VIEW (obj->priv->treeview)) != GTK_TREE_MODEL (obj->priv->file_store))
{
@@ -2590,12 +2591,20 @@ on_virtual_root_changed (XedFileBrowserStore *model,
if (xed_file_browser_store_get_iter_virtual_root (model, &iter))
{
GFile *location;
GtkTreeIter root;
gtk_tree_model_get (GTK_TREE_MODEL (model), &iter, XED_FILE_BROWSER_STORE_COLUMN_LOCATION, &location, -1);
if (xed_file_browser_store_get_iter_root (model, &root))
{
GtkAction *action;
if (!obj->priv->changing_location)
{
Location *loc;
GdkPixbuf *pixbuf;
/* Remove all items from obj->priv->current_location on */
if (obj->priv->current_location)
{
@@ -2632,7 +2641,6 @@ on_virtual_root_changed (XedFileBrowserStore *model,
{
g_object_unref (pixbuf);
}
}
action = gtk_action_group_get_action (obj->priv->action_group, "DirectoryUp");
@@ -2650,6 +2658,11 @@ on_virtual_root_changed (XedFileBrowserStore *model,
}
check_current_item (obj, TRUE);
if (location)
{
g_object_unref (location);
}
}
else
{