mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-12 15:36:17 +01:00
measure_disk_usage: skip progress on NULL callback
In the real_..._async wrapper for GFile.measure_disk_usage, skip the wrapping of the progress callback in the case that the user gave a NULL callback to the async function. This is a performance improvement because the sync version won't have to do continuous sampling of the clock to issue a call to the wrapper which will then do nothing. Unfortunately, I made this simplifying assumption when writing the wrapper, but forgot to actually implement it when making the sync call. As a result, the wrapper is still called, and invokes the NULL callback, causing a segfault. Make sure we pass NULL if the user's callback was NULL. https://bugzilla.gnome.org/show_bug.cgi?id=707787
This commit is contained in:
parent
1a9b739c31
commit
dbf95a5ae9
@ -7453,7 +7453,7 @@ measure_disk_usage_thread (GTask *task,
|
||||
MeasureResult result;
|
||||
|
||||
if (g_file_measure_disk_usage (source_object, data->flags, cancellable,
|
||||
measure_disk_usage_progress, task,
|
||||
data->progress_callback ? measure_disk_usage_progress : NULL, task,
|
||||
&result.disk_usage, &result.num_dirs, &result.num_files,
|
||||
&error))
|
||||
g_task_return_pointer (task, g_memdup (&result, sizeof result), g_free);
|
||||
|
Loading…
Reference in New Issue
Block a user