info: Avoid a crash when we're cancelled
If we're cancelled, the panel is being finalized so return immediately instead of iterating further and crashing. https://bugzilla.gnome.org/show_bug.cgi?id=786097
This commit is contained in:
parent
6ee793118a
commit
5622704b74
1 changed files with 15 additions and 6 deletions
|
@ -501,16 +501,24 @@ query_done (GFile *file,
|
||||||
GAsyncResult *res,
|
GAsyncResult *res,
|
||||||
CcInfoOverviewPanel *self)
|
CcInfoOverviewPanel *self)
|
||||||
{
|
{
|
||||||
|
CcInfoOverviewPanelPrivate *priv;
|
||||||
GFileInfo *info;
|
GFileInfo *info;
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
CcInfoOverviewPanelPrivate *priv = cc_info_overview_panel_get_instance_private (self);
|
|
||||||
|
|
||||||
info = g_file_query_filesystem_info_finish (file, res, &error);
|
info = g_file_query_filesystem_info_finish (file, res, &error);
|
||||||
if (info != NULL)
|
if (info != NULL)
|
||||||
{
|
{
|
||||||
|
priv = cc_info_overview_panel_get_instance_private (self);
|
||||||
priv->total_bytes += g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE);
|
priv->total_bytes += g_file_info_get_attribute_uint64 (info, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE);
|
||||||
g_object_unref (info);
|
g_object_unref (info);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
|
||||||
|
{
|
||||||
|
g_error_free (error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char *path;
|
char *path;
|
||||||
|
@ -519,6 +527,7 @@ query_done (GFile *file,
|
||||||
g_free (path);
|
g_free (path);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* And onto the next element */
|
/* And onto the next element */
|
||||||
get_primary_disc_info_start (self);
|
get_primary_disc_info_start (self);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue