diff options
author | Patrick Steinhardt <ps@pks.im> | 2024-02-06 07:35:55 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-02-06 12:10:09 -0800 |
commit | 62d3c8e8c8a3dc3113cead8d9dd36f7e59054670 (patch) | |
tree | bbc874a42c3fe0850e9e0c16e6901287b5fd5485 | |
parent | 59f302ca5abf3e8ec4f14f098b26adf786017fad (diff) | |
download | git-62d3c8e8c8a3dc3113cead8d9dd36f7e59054670.tar.gz |
reftable/merged: refactor initialization of iterators
Refactor the initialization of the merged iterator to fit our code style
better. This refactoring prepares the code for a refactoring of how
records are being initialized.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | reftable/merged.c | 27 |
1 files changed, 13 insertions, 14 deletions
diff --git a/reftable/merged.c b/reftable/merged.c index 0abcda26e8..0e60e2a39b 100644 --- a/reftable/merged.c +++ b/reftable/merged.c @@ -19,24 +19,23 @@ https://developers.google.com/open-source/licenses/bsd static int merged_iter_init(struct merged_iter *mi) { - int i = 0; - for (i = 0; i < mi->stack_len; i++) { - struct reftable_record rec = reftable_new_record(mi->typ); - int err = iterator_next(&mi->stack[i], &rec); - if (err < 0) { + for (size_t i = 0; i < mi->stack_len; i++) { + struct pq_entry e = { + .rec = reftable_new_record(mi->typ), + .index = i, + }; + int err; + + err = iterator_next(&mi->stack[i], &e.rec); + if (err < 0) return err; - } - if (err > 0) { reftable_iterator_destroy(&mi->stack[i]); - reftable_record_release(&rec); - } else { - struct pq_entry e = { - .rec = rec, - .index = i, - }; - merged_iter_pqueue_add(&mi->pq, &e); + reftable_record_release(&e.rec); + continue; } + + merged_iter_pqueue_add(&mi->pq, &e); } return 0; |