]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'ps/reftable-iteration-perf-part2' into ps/reftable-reflog-iteration...
authorJunio C Hamano <gitster@pobox.com>
Tue, 5 Mar 2024 17:09:46 +0000 (09:09 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 5 Mar 2024 17:09:46 +0000 (09:09 -0800)
* 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

1  2 
refs/reftable-backend.c

index 6c11c4a5e334f8c6ef64d1632956117a870869eb,4d27fdde541f1ee5ab8f555e20b5de28b1c11144..249a618b5a9cb942edb6b4b7d688c1653d45f80b
@@@ -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;