Exemple #1
0
void SelectionTreeElement::mempoolRelease()
{
    if (!mempool)
    {
        return;
    }
    switch (v.type)
    {
    case INT_VALUE:
    case REAL_VALUE:
        _gmx_sel_mempool_free(mempool, v.u.ptr);
        _gmx_selvalue_setstore(&v, NULL);
        break;

    case GROUP_VALUE:
        if (v.u.g)
        {
            _gmx_sel_mempool_free_group(mempool, v.u.g);
        }
        break;

    default:
        GMX_THROW(gmx::InternalError("Memory pooling not implemented for requested type"));
    }
}
Exemple #2
0
/*!
 * \param[in,out] sel   Selection element to release.
 *
 * Releases the memory allocated for the values of \p sel from the
 * \p sel->mempool memory pool. If no memory pool is set, nothing is done.
 */
void
_gmx_selelem_mempool_release(t_selelem *sel)
{
    if (!sel->mempool)
    {
        return;
    }
    switch (sel->v.type)
    {
        case INT_VALUE:
        case REAL_VALUE:
            _gmx_sel_mempool_free(sel->mempool, sel->v.u.ptr);
            _gmx_selvalue_setstore(&sel->v, NULL);
            break;

        case GROUP_VALUE:
            if (sel->v.u.g)
            {
                _gmx_sel_mempool_free_group(sel->mempool, sel->v.u.g);
            }
            break;

        default:
            GMX_THROW(gmx::InternalError("Memory pooling not implemented for requested type"));
    }
}
Exemple #3
0
void
_gmx_sel_mempool_free_group(gmx_sel_mempool_t *mp, gmx_ana_index_t *g)
{
    _gmx_sel_mempool_free(mp, g->index);
    g->index = NULL;
}