Skip to content

Commit 3b6dd6a

Browse files
pks-tgitster
authored andcommitted
reftable/merged: handle subiter cleanup on close only
When advancing one of the subiters fails we immediately release resources associated with that subiter. This is not necessary though as we will release these resources when closing the merged iterator anyway. Drop the logic and only release resources when the merged iterator is done. This is a mere cleanup that should help reduce the cognitive load when reading through the code. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 2d71a1d commit 3b6dd6a

File tree

1 file changed

+2
-10
lines changed

1 file changed

+2
-10
lines changed

reftable/merged.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,8 @@ static int merged_iter_init(struct merged_iter *mi)
4646
&mi->subiters[i].rec);
4747
if (err < 0)
4848
return err;
49-
if (err > 0) {
50-
reftable_iterator_destroy(&mi->subiters[i].iter);
51-
reftable_record_release(&mi->subiters[i].rec);
49+
if (err > 0)
5250
continue;
53-
}
5451

5552
merged_iter_pqueue_add(&mi->pq, &e);
5653
}
@@ -79,13 +76,8 @@ static int merged_iter_advance_subiter(struct merged_iter *mi, size_t idx)
7976
int err;
8077

8178
err = iterator_next(&mi->subiters[idx].iter, &mi->subiters[idx].rec);
82-
if (err < 0)
79+
if (err)
8380
return err;
84-
if (err > 0) {
85-
reftable_iterator_destroy(&mi->subiters[idx].iter);
86-
reftable_record_release(&mi->subiters[idx].rec);
87-
return 0;
88-
}
8981

9082
merged_iter_pqueue_add(&mi->pq, &e);
9183
return 0;

0 commit comments

Comments
 (0)