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>

Patrick Steinhardt committed Feb 6, 2024 at 07:35 UTC 62d3c8e8c8a3dc3113cead8d9dd36f7e59054670
1 file changed +13 -14
reftable/merged.c
+13 -14
@@ -19,24 +19,23 @@ https://developers.google.com/open-source/licenses/bsd
19
20 static int merged_iter_init(struct merged_iter *mi)
21 {
22 - int i = 0;
23 - for (i = 0; i < mi->stack_len; i++) {
24 - struct reftable_record rec = reftable_new_record(mi->typ);
25 - int err = iterator_next(&mi->stack[i], &rec);
26 - if (err < 0) {
22 + for (size_t i = 0; i < mi->stack_len; i++) {
23 + struct pq_entry e = {
24 + .rec = reftable_new_record(mi->typ),
25 + .index = i,
26 + };
27 + int err;
28 +
29 + err = iterator_next(&mi->stack[i], &e.rec);
30 + if (err < 0)
31 return err;
28 - }
29 -
32 if (err > 0) {
33 reftable_iterator_destroy(&mi->stack[i]);
32 - reftable_record_release(&rec);
33 - } else {
34 - struct pq_entry e = {
35 - .rec = rec,
36 - .index = i,
37 - };
38 - merged_iter_pqueue_add(&mi->pq, &e);
34 + reftable_record_release(&e.rec);
35 + continue;
36 }
37 +
38 + merged_iter_pqueue_add(&mi->pq, &e);
39 }
40
41 return 0;