]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t-reftable-block: use block_iter_reset() instead of block_iter_close()
authorChandra Pratap <chandrapratap3519@gmail.com>
Wed, 21 Aug 2024 12:30:56 +0000 (18:00 +0530)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Aug 2024 16:41:41 +0000 (09:41 -0700)
block_iter_reset() restores a block iterator to its state at the time
of initialization without freeing any memory while block_iter_close()
deallocates the memory for the iterator.

In the current testing setup, a block iterator is allocated and
deallocated for every iteration of a loop, which hurts performance.
Improve upon this by using block_iter_reset() at the start of each
iteration instead. This has the added benifit of testing
block_iter_reset(), which currently remains untested.

Similarly, remove reftable_record_release() for a reftable record
that is still in use.

Mentored-by: Patrick Steinhardt <ps@pks.im>
Mentored-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Chandra Pratap <chandrapratap3519@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/unit-tests/t-reftable-block.c

index 5887e9205d9d924b72eb18a3052d732d7e3c0067..ad3d128ea72086bb6aa8823db7bbf50545d655d3 100644 (file)
@@ -78,11 +78,8 @@ static void t_block_read_write(void)
                j++;
        }
 
-       reftable_record_release(&rec);
-       block_iter_close(&it);
-
        for (i = 0; i < N; i++) {
-               struct block_iter it = BLOCK_ITER_INIT;
+               block_iter_reset(&it);
                reftable_record_key(&recs[i], &want);
 
                ret = block_iter_seek_key(&it, &br, &want);
@@ -100,11 +97,10 @@ static void t_block_read_write(void)
                ret = block_iter_next(&it, &rec);
                check_int(ret, ==, 0);
                check(reftable_record_equal(&recs[10 * (i / 10)], &rec, GIT_SHA1_RAWSZ));
-
-               block_iter_close(&it);
        }
 
        block_reader_release(&br);
+       block_iter_close(&it);
        reftable_record_release(&rec);
        reftable_block_done(&br.block);
        strbuf_release(&want);