From c40277cd665e04d300ea839a1dd2ff675655f5fb Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Mon, 8 Sep 2025 11:08:51 -0400 Subject: pk.h: update to 0.9.2 --- src/pk.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/pk.h b/src/pk.h index b293d77..0df1741 100644 --- a/src/pk.h +++ b/src/pk.h @@ -1,7 +1,7 @@ #ifndef PK_SINGLE_HEADER_FILE_H #define PK_SINGLE_HEADER_FILE_H /******************************************************************************* -* PK Single-Header-Library V0.9.0 +* PK Single-Header-Library V0.9.2 * * Author: Jonathan Bradley * Copyright: © 2024-2025 Jonathan Bradley @@ -291,7 +291,7 @@ * *******************************************************************************/ -#define PK_VERSION "0.9.0" +#define PK_VERSION "0.9.2" #ifdef PK_IMPL_ALL # ifndef PK_IMPL_MEM_TYPES @@ -2103,7 +2103,7 @@ bool pk_arr_iter_begin(struct pk_arr *arr, struct pk_iter *it) { it->data = nullptr; it->id.arr.i = 0; - if (arr->data != nullptr && arr->data != CAFE_BABE(void)) { + if (arr->next > 0 && arr->data != nullptr && arr->data != CAFE_BABE(void)) { it->data = arr->data; return true; } @@ -2113,7 +2113,7 @@ pk_arr_iter_begin(struct pk_arr *arr, struct pk_iter *it) { bool pk_arr_iter_end(struct pk_arr *arr, struct pk_iter *it) { it->data = nullptr; it->id.arr.i = 0; - if (arr->data != nullptr && arr->data != CAFE_BABE(void)) { + if (arr->next > 0 && arr->data != nullptr && arr->data != CAFE_BABE(void)) { it->id.arr.i = arr->next - 1; it->data = (void *)((char*)arr->data + (arr->stride * it->id.arr.i)); return true; @@ -3038,8 +3038,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