summaryrefslogtreecommitdiff
path: root/pkmem.h
diff options
context:
space:
mode:
Diffstat (limited to 'pkmem.h')
-rw-r--r--pkmem.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/pkmem.h b/pkmem.h
index 2339d22..461fc64 100644
--- a/pkmem.h
+++ b/pkmem.h
@@ -507,10 +507,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);
@@ -567,17 +568,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;
}