Пример #1
0
void mpl_terminate(MPL *mpl)
{     if (setjmp(mpl->jump)) xassert(mpl != mpl);
      switch (mpl->phase)
      {  case 0:
         case 1:
         case 2:
         case 3:
            /* there were no errors; clean the model content */
            clean_model(mpl);
            xassert(mpl->a_list == NULL);
#if 1 /* 11/II-2008 */
            xassert(mpl->dca == NULL);
#endif
            break;
         case 4:
            /* model processing has been finished due to error; delete
               search trees, which may be created for some arrays */
            {  ARRAY *a;
               for (a = mpl->a_list; a != NULL; a = a->next)
                  if (a->tree != NULL) avl_delete_tree(a->tree);
            }
#if 1 /* 11/II-2008 */
            free_dca(mpl);
#endif
            break;
         default:
            xassert(mpl != mpl);
      }
      /* delete the translator database */
      xfree(mpl->image);
      xfree(mpl->b_image);
      xfree(mpl->f_image);
      xfree(mpl->context);
      dmp_delete_pool(mpl->pool);
      avl_delete_tree(mpl->tree);
      dmp_delete_pool(mpl->strings);
      dmp_delete_pool(mpl->symbols);
      dmp_delete_pool(mpl->tuples);
      dmp_delete_pool(mpl->arrays);
      dmp_delete_pool(mpl->members);
      dmp_delete_pool(mpl->elemvars);
      dmp_delete_pool(mpl->formulae);
      dmp_delete_pool(mpl->elemcons);
      xfree(mpl->sym_buf);
      xfree(mpl->tup_buf);
      rng_delete_rand(mpl->rand);
      if (mpl->row != NULL) xfree(mpl->row);
      if (mpl->col != NULL) xfree(mpl->col);
      if (mpl->in_fp != NULL) xfclose(mpl->in_fp);
      if (mpl->out_fp != NULL && mpl->out_fp != (void *)stdout)
         xfclose(mpl->out_fp);
      if (mpl->out_file != NULL) xfree(mpl->out_file);
      if (mpl->prt_fp != NULL) xfclose(mpl->prt_fp);
      if (mpl->prt_file != NULL) xfree(mpl->prt_file);
      if (mpl->mod_file != NULL) xfree(mpl->mod_file);
      xfree(mpl->mpl_buf);
      xfree(mpl);
      return;
}
Пример #2
0
static void delete_prob(glp_prob *lp)
{     dmp_delete_pool(lp->pool);
      xfree(lp->cps);
      xassert(lp->tree == NULL);
      xfree(lp->row);
      xfree(lp->col);
      if (lp->r_tree != NULL) avl_delete_tree(lp->r_tree);
      if (lp->c_tree != NULL) avl_delete_tree(lp->c_tree);
      xfree(lp->head);
      if (lp->bfcp != NULL) xfree(lp->bfcp);
      if (lp->bfd != NULL) bfd_delete_it(lp->bfd);
      return;
}
Пример #3
0
void glp_delete_index(glp_prob *lp)
{   int i, j;
    /* delete row name index */
    if (lp->r_tree != NULL)
    {   for (i = 1; i <= lp->m; i++) lp->row[i]->node = NULL;
        avl_delete_tree(lp->r_tree), lp->r_tree = NULL;
    }
    /* delete column name index */
    if (lp->c_tree != NULL)
    {   for (j = 1; j <= lp->n; j++) lp->col[j]->node = NULL;
        avl_delete_tree(lp->c_tree), lp->c_tree = NULL;
    }
    return;
}
Пример #4
0
void glp_delete_v_index(glp_graph *G)
{   /* delete vertex name index */
    int i;
    if (G->index != NULL)
    {   avl_delete_tree(G->index), G->index = NULL;
        for (i = 1; i <= G->nv; i++) G->v[i]->entry = NULL;
    }
    return;
}
Пример #5
0
static void delete_graph(glp_graph *G)
{     dmp_delete_pool(G->pool);
      xfree(G->v);
      if (G->index != NULL) avl_delete_tree(G->index);
      return;
}
Пример #6
0
void exit_configuration(avl_tree_t ** config_tree) {
	avl_delete_tree(*config_tree);
	*config_tree = NULL;
}
Пример #7
0
void free_subnet_tree(avl_tree_t *subnet_tree) {
	avl_delete_tree(subnet_tree);
}
Пример #8
0
void exit_subnets(void) {
	avl_delete_tree(subnet_tree);
}