t-reftable-pq: make merged_iter_pqueue_check() callable by reference

merged_iter_pqueue_check() checks the validity of a priority queue represented by a merged_iter_pqueue struct by asserting the parent-child relation in the struct's heap. Explicity passing a struct to this function means a copy of the entire struct is created, which is inefficient. Make the function accept a pointer to the struct instead. This is safe to do since the function doesn't modify the struct in any way. Make the function parameter 'const' to assert immutability. 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>

Chandra Pratap committed Aug 1, 2024 at 16:29 UTC b37b71b129d9536aca7bb242ef9d0ab43243f613
1 file changed +5 -5
t/unit-tests/t-reftable-pq.c
+5 -5
@@ -10,11 +10,11 @@ https://developers.google.com/open-source/licenses/bsd
10 #include "reftable/constants.h"
11 #include "reftable/pq.h"
12
13 -static void merged_iter_pqueue_check(struct merged_iter_pqueue pq)
13 +static void merged_iter_pqueue_check(const struct merged_iter_pqueue *pq)
14 {
15 - for (size_t i = 1; i < pq.len; i++) {
15 + for (size_t i = 1; i < pq->len; i++) {
16 size_t parent = (i - 1) / 2;
17 - check(pq_less(&pq.heap[parent], &pq.heap[i]));
17 + check(pq_less(&pq->heap[parent], &pq->heap[i]));
18 }
19 }
20
@@ -40,13 +40,13 @@ static void t_pq(void)
40 };
41
42 merged_iter_pqueue_add(&pq, &e);
43 - merged_iter_pqueue_check(pq);
43 + merged_iter_pqueue_check(&pq);
44 i = (i * 7) % N;
45 } while (i != 1);
46
47 while (!merged_iter_pqueue_is_empty(pq)) {
48 struct pq_entry e = merged_iter_pqueue_remove(&pq);
49 - merged_iter_pqueue_check(pq);
49 + merged_iter_pqueue_check(&pq);
50
51 check(reftable_record_type(e.rec) == BLOCK_TYPE_REF);
52 if (last)