diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-08 11:08:51 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-09-09 15:47:18 -0400 |
| commit | c40277cd665e04d300ea839a1dd2ff675655f5fb (patch) | |
| tree | dc0e84ef116ddb0c7d1dede9da523c125dc15634 | |
| parent | dad361554242b1d5197d02144177ac2a74e79926 (diff) | |
pk.h: update to 0.9.2
| -rw-r--r-- | src/pk.h | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -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; } |
