progress.c: use dereferenced "progress" variable, not "(*p_progress)"
Since 98a13647408 (trace2: log progress time and throughput, 2020-05-12) stop_progress() dereferences a "struct progress **" parameter in several places. Extract a dereferenced variable to reduce clutter and make it clearer who needs to write to this parameter. Now instead of using "*p_progress" several times in stop_progress() we check it once for NULL and then use a dereferenced "progress" variable thereafter. This uses the same pattern as the adjacent stop_progress_msg() function, see ac900fddb7f (progress: don't dereference before checking for NULL, 2020-08-10). Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Ævar Arnfjörð Bjarmason committed
Feb 3, 2022 at 22:40 UTC
1ccad6a1f175080c3896a70501dcd6c9e0a0af0a
1 file changed
+9
-6
progress.c
+9
-6
@@ -319,21 +319,24 @@ static void finish_if_sparse(struct progress *progress)
319
320
void stop_progress(struct progress **p_progress)
321
{
322
+ struct progress *progress;
323
+
324
if (!p_progress)
325
BUG("don't provide NULL to stop_progress");
326
+ progress = *p_progress;
327
325
- finish_if_sparse(*p_progress);
328
+ finish_if_sparse(progress);
329
327
- if (*p_progress) {
330
+ if (progress) {
331
trace2_data_intmax("progress", the_repository, "total_objects",
329
- (*p_progress)->total);
332
+ progress->total);
333
331
- if ((*p_progress)->throughput)
334
+ if (progress->throughput)
335
trace2_data_intmax("progress", the_repository,
336
"total_bytes",
334
- (*p_progress)->throughput->curr_total);
337
+ progress->throughput->curr_total);
338
336
- trace2_region_leave("progress", (*p_progress)->title, the_repository);
339
+ trace2_region_leave("progress", progress->title, the_repository);
340
}
341
342
stop_progress_msg(p_progress, _("done"));