diff options
author | Bartosz Taudul <wolf.pld@gmail.com> | 2019-02-15 03:48:33 +0300 |
---|---|---|
committer | Bartosz Taudul <wolf.pld@gmail.com> | 2019-02-15 03:59:33 +0300 |
commit | 930190f2cbdd1ebcb468e2013e0195f565ab503f (patch) | |
tree | a73fd683ee2bb2ba9ee03484810b6d63ecc440cb /server/TracySlab.hpp | |
parent | 1cefd4d8ac1415aaa29bcec0b905b2e23ecb7cf0 (diff) |
Support big allocations in slab allocator.
Diffstat (limited to 'server/TracySlab.hpp')
-rw-r--r-- | server/TracySlab.hpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/server/TracySlab.hpp b/server/TracySlab.hpp index d66a4a4a..74da3162 100644 --- a/server/TracySlab.hpp +++ b/server/TracySlab.hpp @@ -75,6 +75,23 @@ public: m_offset -= size; } + tracy_force_inline void* AllocBig( size_t size ) + { + if( m_offset + size <= BlockSize ) + { + void* ret = m_ptr + m_offset; + m_offset += size; + return ret; + } + else + { + memUsage.fetch_add( size ); + auto ret = new char[size]; + m_buffer.emplace_back( ret ); + return ret; + } + } + void Reset() { if( m_buffer.size() > 1 ) |