summaryrefslogtreecommitdiff
path: root/src/memory.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-08-08 21:30:19 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-08-08 21:30:19 -0400
commit1d3bfd616e1b00c0510d9ac00e6e9ee6b6daab83 (patch)
tree7e43796de56f19fb3d1e4eac944f403bc1bb8560 /src/memory.hpp
parent9383af84ee02b755750bae9ce09f0de3d0d1f7c9 (diff)
memory cleanup and require size for deleting the pointer
Diffstat (limited to 'src/memory.hpp')
-rw-r--r--src/memory.hpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/memory.hpp b/src/memory.hpp
index 43ada0f..fe93cc7 100644
--- a/src/memory.hpp
+++ b/src/memory.hpp
@@ -14,19 +14,27 @@ struct MemBucket;
void *PkeNew(std::size_t sz);
void *PkeNew(std::size_t sz, MemBucket *bkt);
-void PkeDelete(void *ptr);
-void PkeDelete(void *ptr, MemBucket *bkt);
+void PkeDelete(const void *ptr, std::size_t sz);
+void PkeDelete(const void *ptr, std::size_t sz, MemBucket *bkt);
MemBucket *BeginTransientBucket(int64_t sz = DEFAULT_BUCKET_SIZE); // 256MB
void EndTransientBucket(MemBucket *bkt);
template <typename T>
-T *PkeNew() {
+inline T *PkeNew() {
return reinterpret_cast<T *>(PkeNew(sizeof(T)));
}
template <typename T>
-T *PkeNew(std::size_t sz) {
- return reinterpret_cast<T *>(PkeNew(sz));
+inline T *PkeNew(long count) {
+ return reinterpret_cast<T *>(PkeNew(sizeof(T) * count));
+}
+template <typename T>
+inline void PkeDelete(const void *ptr) {
+ return PkeDelete(ptr, sizeof(T));
+}
+template <typename T>
+inline void PkeDelete(const void *ptr, long count) {
+ return PkeDelete(ptr, sizeof(T) * count);
}
} /* pke */