refs: always treat iterators as ordered
In the preceding commit we have converted the reflog iterator of the "files" backend to be ordered, which was the only remaining ref iterator that wasn't ordered. Refactor the ref iterator infrastructure so that we always assume iterators to be ordered, thus simplifying 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
6f22780017
commit
5e01d83841
@ -879,8 +879,7 @@ static struct ref_iterator *files_ref_iterator_begin(
|
||||
|
||||
CALLOC_ARRAY(iter, 1);
|
||||
ref_iterator = &iter->base;
|
||||
base_ref_iterator_init(ref_iterator, &files_ref_iterator_vtable,
|
||||
overlay_iter->ordered);
|
||||
base_ref_iterator_init(ref_iterator, &files_ref_iterator_vtable);
|
||||
iter->iter0 = overlay_iter;
|
||||
iter->repo = ref_store->repo;
|
||||
iter->flags = flags;
|
||||
@ -2202,7 +2201,7 @@ static struct ref_iterator *reflog_iterator_begin(struct ref_store *ref_store,
|
||||
CALLOC_ARRAY(iter, 1);
|
||||
ref_iterator = &iter->base;
|
||||
|
||||
base_ref_iterator_init(ref_iterator, &files_reflog_iterator_vtable, 1);
|
||||
base_ref_iterator_init(ref_iterator, &files_reflog_iterator_vtable);
|
||||
iter->dir_iterator = diter;
|
||||
iter->ref_store = ref_store;
|
||||
strbuf_release(&sb);
|
||||
@ -2220,7 +2219,7 @@ static struct ref_iterator *files_reflog_iterator_begin(struct ref_store *ref_st
|
||||
return reflog_iterator_begin(ref_store, refs->gitcommondir);
|
||||
} else {
|
||||
return merge_ref_iterator_begin(
|
||||
1, reflog_iterator_begin(ref_store, refs->base.gitdir),
|
||||
reflog_iterator_begin(ref_store, refs->base.gitdir),
|
||||
reflog_iterator_begin(ref_store, refs->gitcommondir),
|
||||
ref_iterator_select, refs);
|
||||
}
|
||||
|
Reference in New Issue
Block a user