Пример #1
0
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));
	}
}
Пример #2
0
	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()