Commit dbf95a5a authored by Allison Karlitskaya's avatar Allison Karlitskaya

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.
parent 1a9b739c
......@@ -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,
g_task_return_pointer (task, g_memdup (&result, sizeof result), g_free);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment