summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/palloc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/netlist/plib/palloc.h')
-rw-r--r--src/lib/netlist/plib/palloc.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/lib/netlist/plib/palloc.h b/src/lib/netlist/plib/palloc.h
index 0a79302787d..50aa880320e 100644
--- a/src/lib/netlist/plib/palloc.h
+++ b/src/lib/netlist/plib/palloc.h
@@ -63,7 +63,7 @@ namespace plib {
{
// call destructor
p->~T();
- getref(m_a).deallocate(p);
+ getref(m_a).deallocate(p, sizeof(T));
}
//private:
arena_storage_type m_a;
@@ -228,8 +228,7 @@ namespace plib {
void deallocate(T* p, std::size_t n) noexcept
{
- unused_var(n);
- m_a.deallocate(p);
+ m_a.deallocate(p, n);
}
template <class AR1, class T1, std::size_t A1, class AR2, class T2, std::size_t A2>
@@ -263,7 +262,9 @@ namespace plib {
struct aligned_arena
{
static constexpr const bool is_stateless = true;
- template <class T, std::size_t ALIGN = alignof(T)>
+ using size_type = std::size_t;
+
+ template <class T, size_type ALIGN = alignof(T)>
using allocator_type = arena_allocator<aligned_arena, T, ALIGN>;
template <typename T>
@@ -298,8 +299,9 @@ namespace plib {
#endif
}
- static inline void deallocate( void *ptr ) noexcept
+ static inline void deallocate( void *ptr, size_t size ) noexcept
{
+ unused_var(size);
#if (PUSE_ALIGNED_ALLOCATION)
// NOLINTNEXTLINE(cppcoreguidelines-no-malloc)
free(ptr);
@@ -319,7 +321,7 @@ namespace plib {
}
catch (...)
{
- deallocate(mem);
+ deallocate(mem, sizeof(T));
throw;
}
}
@@ -335,7 +337,7 @@ namespace plib {
}
catch (...)
{
- deallocate(mem);
+ deallocate(mem, sizeof(T));
throw;
}
}
@@ -387,7 +389,7 @@ namespace plib {
inline void pdelete(T *ptr) noexcept
{
ptr->~T();
- aligned_arena::deallocate(ptr);
+ aligned_arena::deallocate(ptr, sizeof(T));
}