container::~container() { clear(); { POOLLIST_DELETE(m_va_pl, variant_array, VARIANT_ARRAY_DELETE(*n)); POOLLIST_DELETE(m_vm_pl, variant_map, VARIANT_MAP_DELETE(*n)); POOLLIST_DELETE(m_v_pl, variant, USE(n)); } { POOLLIST_CLEAR(m_cva_pl, variant_array, ARRAY_DEEP_CLEAR(n->va, variant_array *)); POOLLIST_CLEAR(m_cvm_pl, variant_map, HASHMAP_CLEAR(n->vm)); POOLLIST_CLEAR(m_cv_pl, variant, USE(n)); POOLLIST_DELETE(m_cva_pl, variant_array, VARIANT_ARRAY_DELETE(*n)); POOLLIST_DELETE(m_cvm_pl, variant_map, VARIANT_MAP_DELETE(*n)); POOLLIST_DELETE(m_cv_pl, variant, USE(n)); } }
POOLLIST_DELETE(m_va_pl); pool<variant_map>::node * pvmn = m_vm_pl.p.m_data; while (pvmn != 0) { VARIANT_MAP_DELETE(pvmn->t); pvmn = pvmn->next; } POOLLIST_DELETE(m_vm_pl); POOLLIST_DELETE(m_v_pl); } void container::clear() { POOLLIST_CLEAR(m_va_pl, variant_array, ARRAY_DEEP_CLEAR(n->t.va, pool<variant_array>::node *)); POOLLIST_CLEAR(m_vm_pl, variant_map, HASHMAP_CLEAR(n->t.vm)); POOLLIST_CLEAR(m_v_pl, variant, USE(n)); } variant_array * container::newarray() { pool<variant_array>::node * n = 0; POOLLIST_POP(m_va_pl, n, variant_array, m_fk->cfg.array_grow_speed); ARRAY_INI(n->t.va, m_fk); ARRAY_CLEAR(n->t.va); return &n->t; } variant_map * container::newmap()