diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-08-08 21:30:19 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-08-08 21:30:19 -0400 |
| commit | 1d3bfd616e1b00c0510d9ac00e6e9ee6b6daab83 (patch) | |
| tree | 7e43796de56f19fb3d1e4eac944f403bc1bb8560 /src/memory.hpp | |
| parent | 9383af84ee02b755750bae9ce09f0de3d0d1f7c9 (diff) | |
memory cleanup and require size for deleting the pointer
Diffstat (limited to 'src/memory.hpp')
| -rw-r--r-- | src/memory.hpp | 18 |
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 */ |
