From 848247d0aedc1ed971b5ee20920cbc32f7e62ecb Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Tue, 9 Sep 2025 15:45:56 -0400 Subject: pkbktarr: find first valid iter key on _begin --- pkbktarr.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'pkbktarr.h') diff --git a/pkbktarr.h b/pkbktarr.h index a833f87..a437e79 100644 --- a/pkbktarr.h +++ b/pkbktarr.h @@ -339,8 +339,11 @@ bool pk_bkt_arr_iter_begin(struct pk_bkt_arr *arr, struct pk_iter *it) { it->data = nullptr; it->id.bkt.b = 0; it->id.bkt.i = 0; + if (arr->head_l.b == 0 && arr->head_l.i == 0 && (arr->head_l.b != arr->head_r.b || arr->head_l.i != arr->head_r.i)) { + return pk_bkt_arr_iter_increment(arr, it); + } if ((arr->idx_unused[it->id.bkt.b] & (1ull << it->id.bkt.i)) != 0) return false; - it->data = arr->bucketed_data[0]; + it->data = (char*)(arr->bucketed_data[it->id.bkt.b]) + (arr->stride * it->id.bkt.i); return true; } -- cgit v1.2.3