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;