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>
maint
Chandra Pratap 2024-08-01 16:29:46 +05:30 committed by Junio C Hamano
parent 2e707447e1
commit b37b71b129
1 changed files with 5 additions and 5 deletions

View File

@ -10,11 +10,11 @@ https://developers.google.com/open-source/licenses/bsd
#include "reftable/constants.h"
#include "reftable/pq.h"

static void merged_iter_pqueue_check(struct merged_iter_pqueue pq)
static void merged_iter_pqueue_check(const struct merged_iter_pqueue *pq)
{
for (size_t i = 1; i < pq.len; i++) {
for (size_t i = 1; i < pq->len; i++) {
size_t parent = (i - 1) / 2;
check(pq_less(&pq.heap[parent], &pq.heap[i]));
check(pq_less(&pq->heap[parent], &pq->heap[i]));
}
}

@ -40,13 +40,13 @@ static void t_pq(void)
};

merged_iter_pqueue_add(&pq, &e);
merged_iter_pqueue_check(pq);
merged_iter_pqueue_check(&pq);
i = (i * 7) % N;
} while (i != 1);

while (!merged_iter_pqueue_is_empty(pq)) {
struct pq_entry e = merged_iter_pqueue_remove(&pq);
merged_iter_pqueue_check(pq);
merged_iter_pqueue_check(&pq);

check(reftable_record_type(e.rec) == BLOCK_TYPE_REF);
if (last)