diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-09 15:45:56 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-09 15:45:56 -0400 |
| commit | 848247d0aedc1ed971b5ee20920cbc32f7e62ecb (patch) | |
| tree | d956b319fa3c004f112dfdc14c33098da36a12db /pkbktarr.h | |
| parent | 69fe8825407835b595537a17bf6c66dfc18b7b63 (diff) | |
pkbktarr: find first valid iter key on _begin
Diffstat (limited to 'pkbktarr.h')
| -rw-r--r-- | pkbktarr.h | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -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; } |
