measure_disk_usage: properly report results

In the async case, make sure we copy all of the out parameters from the
results structure, not just 'disk_usage'.
This commit is contained in:
Ryan Lortie 2013-09-17 09:53:18 -04:00
parent dbf95a5ae9
commit b72c466653

View File

@ -7494,19 +7494,25 @@ g_file_real_measure_disk_usage_finish (GFile *file,
guint64 *num_files,
GError **error)
{
guint64 *reported_usage;
MeasureResult *measure_result;
g_return_val_if_fail (g_task_is_valid (result, file), FALSE);
reported_usage = g_task_propagate_pointer (G_TASK (result), error);
measure_result = g_task_propagate_pointer (G_TASK (result), error);
if (reported_usage == NULL)
if (measure_result == NULL)
return FALSE;
if (disk_usage)
*disk_usage = *reported_usage;
*disk_usage = measure_result->disk_usage;
g_free (reported_usage);
if (num_dirs)
*num_dirs = measure_result->num_dirs;
if (num_files)
*num_files = measure_result->num_files;
g_free (measure_result);
return TRUE;
}