mirror of
https://github.com/git/git.git
synced 2026-01-11 10:38:53 +00:00
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 <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
2d71a1d4a2
commit
3b6dd6ad1d
@@ -46,11 +46,8 @@ static int merged_iter_init(struct merged_iter *mi)
|
||||
&mi->subiters[i].rec);
|
||||
if (err < 0)
|
||||
return err;
|
||||
if (err > 0) {
|
||||
reftable_iterator_destroy(&mi->subiters[i].iter);
|
||||
reftable_record_release(&mi->subiters[i].rec);
|
||||
if (err > 0)
|
||||
continue;
|
||||
}
|
||||
|
||||
merged_iter_pqueue_add(&mi->pq, &e);
|
||||
}
|
||||
@@ -79,13 +76,8 @@ static int merged_iter_advance_subiter(struct merged_iter *mi, size_t idx)
|
||||
int err;
|
||||
|
||||
err = iterator_next(&mi->subiters[idx].iter, &mi->subiters[idx].rec);
|
||||
if (err < 0)
|
||||
if (err)
|
||||
return err;
|
||||
if (err > 0) {
|
||||
reftable_iterator_destroy(&mi->subiters[idx].iter);
|
||||
reftable_record_release(&mi->subiters[idx].rec);
|
||||
return 0;
|
||||
}
|
||||
|
||||
merged_iter_pqueue_add(&mi->pq, &e);
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user