SG::ArenaSharedHeapSTLHeader Node1 SG::ArenaSharedHeapSTLHeader - m_owner - m_nblock + ArenaSharedHeapSTLHeader() + ~ArenaSharedHeapSTLHeader() + maybe_delete() + totstats() + get_pool() + update_owner() + report() + protect() + unprotect() + get_name() - get_index() Node2 std::vector< SG::ArenaHeap Allocator * > Node2->Node1 -m_allocators Node3 SG::ArenaHeapAllocator - m_freeptr + ArenaHeapAllocator() + ~ArenaHeapAllocator() + ArenaHeapAllocator() + operator=() + ArenaHeapAllocator() + operator=() + swap() + allocate() + free() + reset() + erase() - slowClear() - refill() - link() Node3->Node2 +elements Node4 SG::ArenaBlockAllocatorBase # m_params # m_protected + ArenaBlockAllocatorBase() + ~ArenaBlockAllocatorBase() + ArenaBlockAllocatorBase() + operator=() + ArenaBlockAllocatorBase() + operator=() + swap() + reserve() + erase() + stats() + name() + params() + protect() + unprotect() # getBlock() Node4->Node3 Node5 SG::ArenaAllocatorBase + ~ArenaAllocatorBase() + reset() + erase() + reserve() + stats() + name() + report() + makeConstructor() + makeConstructor() + makeDestructor() + makeDestructor() + makeClear() + makeClear() - construct_fcn() - destroy_fcn() - clear_fcn() Node5->Node4 Node6 SG::ArenaBlock - m_size - m_elt_size + size() + eltSize() + link() + link() + index() + index() + index() + index() + protect() + unprotect() + newBlock() + destroy() + destroyList() + appendList() + applyList() + overhead() + nactive() + protectList() + unprotectList() - ArenaBlock() - ~ArenaBlock() - ArenaBlock() - operator=() Node6->Node4 #m_freeblocks #m_blocks Node6->Node6 -m_link Node7 std::atomic< size_t > + ptr Node7->Node6 -s_nactive Node8 SG::ArenaBlockAlignDetail ::padForAlign + dummy Node8->Node6 -m_dummy Node9 SG::ArenaAllocatorBase ::Stats + Stats() + clear() + operator+=() + header() Node9->Node4 #m_stats Node10 SG::ArenaAllocatorBase ::Stats::Stat + inuse + free + total + Stat() + clear() + operator+=() Node10->Node9 +blocks +bytes +elts