summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Derrick Stolee <dstolee@microsoft.com>2020-05-15 09:09:28 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2020-05-15 09:41:30 -0700
commit3af029c484fc72f546078966af538db55933e83d (patch)
tree1d529ad61afc44e3b578b7a6c13a487867044186
parenttrace2: log progress time and throughput (diff)
downloadtgif-3af029c484fc72f546078966af538db55933e83d.tar.xz
progress: call trace2_region_leave() only after calling _enter()
A user of progress API calls start_progress() conditionally and depends on the display_progress() and stop_progress() functions to become no-op when start_progress() hasn't been called. As we added a call to trace2_region_enter() to start_progress(), the calls to other trace2 API calls from the progress API functions must make sure that these trace2 calls are skipped when start_progress() hasn't been called on the progress struct. Specifically, do not call trace2_region_leave() from stop_progress() when we haven't called start_progress(), which would have called the matching trace2_region_enter(). Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--progress.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/progress.c b/progress.c
index 6d2dcff0b6..3eda914518 100644
--- a/progress.c
+++ b/progress.c
@@ -329,13 +329,9 @@ void stop_progress(struct progress **p_progress)
trace2_data_intmax("progress", the_repository,
"total_bytes",
(*p_progress)->throughput->curr_total);
- }
- trace2_region_leave("progress",
- p_progress && *p_progress
- ? (*p_progress)->title
- : NULL,
- the_repository);
+ trace2_region_leave("progress", (*p_progress)->title, the_repository);
+ }
stop_progress_msg(p_progress, _("done"));
}