summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/memory.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/memory.cpp b/src/memory.cpp
index 064cad4..ee99fc8 100644
--- a/src/memory.cpp
+++ b/src/memory.cpp
@@ -34,6 +34,7 @@ void DestroyBucket(MemBucket *bkt) {
}
void *Pke_New(std::size_t sz, MemBucket *bkt) {
+ assert(bkt->head + sz <= bkt->size && "memory bucket specified, but full");
void *ptr = bkt->ptr + bkt->head;
bkt->head += sz;
bkt->allocs++;
@@ -54,7 +55,7 @@ void *Pke_New(std::size_t sz) {
}
void Pke_Delete(const void *ptr, std::size_t sz, MemBucket *bkt) {
- assert(ptr >= bkt->ptr && ptr < bkt->ptr + bkt->size && "pointer not in bucket range");
+ assert(ptr >= bkt->ptr && ptr < bkt->ptr + bkt->size && "pointer not in memory bucket range");
bkt->allocs--;
bkt->free += sz;
if (ptr == bkt->ptr + bkt->head - sz) bkt->head -= sz;
@@ -70,10 +71,7 @@ void Pke_Delete(const void *ptr, std::size_t sz) {
bkt = &buckets[i];
if (ptr >= bkt->ptr && ptr < bkt->ptr + bkt->size) break;
}
- if (bkt == nullptr) {
- std::printf("bad pointer %llu", reinterpret_cast<unsigned long long>(ptr));
- throw "bad pointer";
- }
+ assert(bkt != nullptr && "failed to determine correct memory bucket");
Pke_Delete(ptr, sz, bkt);
}