summaryrefslogtreecommitdiff
path: root/src/memory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/memory.cpp')
-rw-r--r--src/memory.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/memory.cpp b/src/memory.cpp
index abaea00..716c6a6 100644
--- a/src/memory.cpp
+++ b/src/memory.cpp
@@ -42,6 +42,7 @@ void *pke::PkeNew(std::size_t sz) {
}
void pke::PkeDelete(const void *ptr, std::size_t sz, pke::MemBucket *bkt) {
+ assert(ptr >= bkt->ptr && ptr < bkt->ptr + bkt->size && "pointer not in bucket range");
bkt->allocs--;
bkt->free += sz;
if (ptr == bkt->ptr + bkt->head - sz) bkt->head -= sz;
@@ -55,7 +56,7 @@ void pke::PkeDelete(const void *ptr, std::size_t sz) {
pke::MemBucket *bkt = nullptr;
for (long i = 0; i < bucketHead; ++i) {
bkt = &buckets[i];
- if (ptr > bkt->ptr && ptr < bkt->ptr + bkt->size) break;
+ if (ptr >= bkt->ptr && ptr < bkt->ptr + bkt->size) break;
}
if (bkt == nullptr) {
std::printf("bad pointer %llu", reinterpret_cast<unsigned long long>(ptr));