Download raw body.
Trim parameters from queue_commits()
err = queue_commits(a->graph, a->commits, 1, a->repo, a->in_repo_path, a->searching, a->search_next_done, a->regex); Urgh. Maybe just pass struct tog_log_thread_args directly? The path parameter is completely unused, and minqueue is a constant 1, so can be eliminated as well. How about this? diff 486cd271536d13bdd204143922fc527bd7b28952 /home/naddy/got blob - 7a0e74a1085f6d90c5585fce296cff2097efc6d8 file + tog/tog.c --- tog/tog.c +++ tog/tog.c @@ -1457,30 +1457,27 @@ done: } static const struct got_error * -queue_commits(struct got_commit_graph *graph, struct commit_queue *commits, - int minqueue, struct got_repository *repo, const char *path, - int *searching, int *search_next_done, regex_t *regex) +queue_commits(struct tog_log_thread_args *a) { const struct got_error *err = NULL; - int nqueued = 0; /* * We keep all commits open throughout the lifetime of the log * view in order to avoid having to re-fetch commits from disk * while updating the display. */ - while (nqueued < minqueue || - (*searching == TOG_SEARCH_FORWARD && !*search_next_done)) { + do { struct got_object_id *id; struct got_commit_object *commit; struct commit_queue_entry *entry; int errcode; - err = got_commit_graph_iter_next(&id, graph, repo, NULL, NULL); + err = got_commit_graph_iter_next(&id, a->graph, a->repo, + NULL, NULL); if (err || id == NULL) break; - err = got_object_open_as_commit(&commit, repo, id); + err = got_object_open_as_commit(&commit, a->repo, id); if (err) break; entry = alloc_commit_queue_entry(commit, id); @@ -1496,18 +1493,18 @@ queue_commits(struct got_commit_graph *graph, struct c break; } - entry->idx = commits->ncommits; - TAILQ_INSERT_TAIL(&commits->head, entry, entry); - nqueued++; - commits->ncommits++; + entry->idx = a->commits->ncommits; + TAILQ_INSERT_TAIL(&a->commits->head, entry, entry); + a->commits->ncommits++; - if (*searching == TOG_SEARCH_FORWARD && !*search_next_done) { + if (*a->searching == TOG_SEARCH_FORWARD && + !*a->search_next_done) { int have_match; - err = match_commit(&have_match, id, commit, regex); + err = match_commit(&have_match, id, commit, a->regex); if (err) break; if (have_match) - *search_next_done = TOG_SEARCH_HAVE_MORE; + *a->search_next_done = TOG_SEARCH_HAVE_MORE; } errcode = pthread_mutex_unlock(&tog_mutex); @@ -1516,7 +1513,7 @@ queue_commits(struct got_commit_graph *graph, struct c "pthread_mutex_unlock"); if (err) break; - } + } while (*a->searching == TOG_SEARCH_FORWARD && !*a->search_next_done); return err; } @@ -1985,9 +1982,7 @@ log_thread(void *arg) return (void *)err; while (!done && !err && !tog_sigpipe_received) { - err = queue_commits(a->graph, a->commits, 1, a->repo, - a->in_repo_path, a->searching, a->search_next_done, - a->regex); + err = queue_commits(a); if (err) { if (err->code != GOT_ERR_ITER_COMPLETED) return (void *)err; -- Christian "naddy" Weisgerber naddy@mips.inka.de
Trim parameters from queue_commits()