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, guint64 *num_files,
GError **error) GError **error)
{ {
guint64 *reported_usage; MeasureResult *measure_result;
g_return_val_if_fail (g_task_is_valid (result, file), FALSE); 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; return FALSE;
if (disk_usage) 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; return TRUE;
} }