summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-06-25 17:16:02 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-06-25 17:16:02 -0400
commit3c73b503330eb67ad9489da6941ae3b28a686780 (patch)
tree24e7f80e37210969c662afe12d6374655179af94 /src
parent48f56a7e5db638fb3526277513b8f14cbe405398 (diff)
pk.h: update to 0.6.2
Diffstat (limited to 'src')
-rw-r--r--src/pk.h23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/pk.h b/src/pk.h
index 42c144b..5631238 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.6.1
+* PK Single-Header-Library V0.6.2
*
* Author: Jonathan Bradley
* Copyright: © 2024-2025 Jonathan Bradley
@@ -291,7 +291,7 @@
*
*******************************************************************************/
-#define PK_VERSION "0.6.1"
+#define PK_VERSION "0.6.2"
#ifdef PK_IMPL_ALL
# ifndef PK_IMPL_MEM_TYPES
@@ -1193,10 +1193,11 @@ pk_delete_bkt(const void* ptr, size_t sz, struct pk_membucket* bkt)
{
#ifdef PK_MEMORY_FORCE_MALLOC
#if defined(__cplusplus)
- return std::free(const_cast<void*>(ptr));
+ std::free(const_cast<void*>(ptr));
#else
- return free((void*)ptr);
+ free((void*)ptr);
#endif
+ return;
#endif
size_t i, k;
mtx_lock(&bkt->mtx);
@@ -1253,17 +1254,16 @@ pk_delete_bkt(const void* ptr, size_t sz, struct pk_membucket* bkt)
struct pk_memblock* beforeBlk = NULL;
struct pk_memblock* afterBlk = NULL;
for (i = bkt->block_head_r+1; i > 0 ; --i) {
- k = pk_memblock_blocks_idx(bkt, i-2);
+ k = pk_memblock_blocks_idx(bkt, (i-1));
tmp_blk = &bkt->blocks[k];
if (tmp_blk->data + tmp_blk->size == ptr) {
beforeBlk = tmp_blk;
+ break;
}
- tmp_blk -= 1;
if (i <= bkt->block_head_r+1 && tmp_blk->data == afterPtr) {
afterBlk = tmp_blk;
- break;
+ continue;
}
- tmp_blk += 1;
if (tmp_blk->data < (char*)ptr) {
break;
}
@@ -2995,11 +2995,11 @@ void pk_funcinstr_init() {
__attribute__((no_instrument_function))
void pk_funcinstr_teardown() {
- size_t i, k;
+ int64_t i, k;
mtx_lock(&thrd_mstr.mtx);
- for (i = 0; i < thrd_mstr.n_buckets; ++i) {
+ for (i = ((int64_t)thrd_mstr.n_buckets)-1; i > -1; --i) {
struct pk_funcinstr_bkt *bkt = thrd_mstr.buckets[i];
- for (k = 0; k < bkt->used_count; ++k) {
+ for (k = ((int64_t)bkt->used_count)-1; k > -1; --k) {
free(bkt->data[k].children);
}
}
@@ -3045,6 +3045,7 @@ void pk_funcinstr_detect_and_handle_reset() {
should_hard_reset = should_hard_reset || (thrd_mstr.reset_time.tv_sec == pk_funcinstr_thrd_bkt->reset_time.tv_sec && thrd_mstr.reset_time.tv_nsec > pk_funcinstr_thrd_bkt->reset_time.tv_nsec);
}
if (should_hard_reset) {
+ if (pk_funcinstr_thrd_bkt != NULL) free(pk_funcinstr_thrd_bkt);
pk_funcinstr_thrd_bkt = NULL;
pk_funcinstr_thrd_instr = NULL;
should_reset = true;