summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-09-08 11:08:51 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-09-09 15:47:18 -0400
commitc40277cd665e04d300ea839a1dd2ff675655f5fb (patch)
treedc0e84ef116ddb0c7d1dede9da523c125dc15634
parentdad361554242b1d5197d02144177ac2a74e79926 (diff)
pk.h: update to 0.9.2
-rw-r--r--src/pk.h13
1 files 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;
}