| 360 | } |
| 361 | |
| 362 | void stop_progress_msg(struct progress **p_progress, const char *msg) |
| 363 | { |
| 364 | struct progress *progress; |
| 365 | |
| 366 | if (!p_progress) |
| 367 | BUG("don't provide NULL to stop_progress_msg"); |
| 368 | |
| 369 | progress = *p_progress; |
| 370 | if (!progress) |
| 371 | return; |
| 372 | *p_progress = NULL; |
| 373 | |
| 374 | finish_if_sparse(progress); |
| 375 | if (progress->last_value != -1) |
| 376 | force_last_update(progress, msg); |
| 377 | log_trace2(progress); |
| 378 | |
| 379 | clear_progress_signal(); |
| 380 | strbuf_release(&progress->counters_sb); |
| 381 | if (progress->throughput) |
| 382 | strbuf_release(&progress->throughput->display); |
| 383 | free(progress->throughput); |
| 384 | free(progress); |
| 385 | } |
no test coverage detected