mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-24 11:12:11 +01:00
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:
parent
dbf95a5ae9
commit
b72c466653
16
gio/gfile.c
16
gio/gfile.c
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user