From: Junio C Hamano Date: Tue, 5 Mar 2024 17:09:46 +0000 (-0800) Subject: Merge branch 'ps/reftable-iteration-perf-part2' into ps/reftable-reflog-iteration... X-Git-Tag: v2.45.0-rc0~91^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2efe7958d6b3119a4471d718ee530b296b5d50b6;p=thirdparty%2Fgit.git Merge branch 'ps/reftable-iteration-perf-part2' into ps/reftable-reflog-iteration-perf * ps/reftable-iteration-perf-part2: refs/reftable: precompute prefix length reftable: allow inlining of a few functions reftable/record: decode keys in place reftable/record: reuse refname when copying reftable/record: reuse refname when decoding reftable/merged: avoid duplicate pqueue emptiness check reftable/merged: circumvent pqueue with single subiter reftable/merged: handle subiter cleanup on close only reftable/merged: remove unnecessary null check for subiters reftable/merged: make subiters own their records reftable/merged: advance subiter on subsequent iteration reftable/merged: make `merged_iter` structure private reftable/pq: use `size_t` to track iterator index --- 2efe7958d6b3119a4471d718ee530b296b5d50b6 diff --cc refs/reftable-backend.c index 6c11c4a5e3,4d27fdde54..249a618b5a --- a/refs/reftable-backend.c +++ b/refs/reftable-backend.c @@@ -479,8 -480,9 +480,9 @@@ static struct reftable_ref_iterator *re int ret; iter = xcalloc(1, sizeof(*iter)); - base_ref_iterator_init(&iter->base, &reftable_ref_iterator_vtable, 1); + base_ref_iterator_init(&iter->base, &reftable_ref_iterator_vtable); iter->prefix = prefix; + iter->prefix_len = prefix ? strlen(prefix) : 0; iter->base.oid = &iter->oid; iter->flags = flags; iter->refs = refs;