diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-25 17:16:02 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-06-25 17:16:02 -0400 |
| commit | 3c73b503330eb67ad9489da6941ae3b28a686780 (patch) | |
| tree | 24e7f80e37210969c662afe12d6374655179af94 /src | |
| parent | 48f56a7e5db638fb3526277513b8f14cbe405398 (diff) | |
pk.h: update to 0.6.2
Diffstat (limited to 'src')
| -rw-r--r-- | src/pk.h | 23 |
1 files changed, 12 insertions, 11 deletions
@@ -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; |
