示例#1
0
void
noll_graph_free (noll_graph_t * g)
{

  noll_var_array_delete (g->lvars);
  g->lvars = NULL;
  noll_var_array_delete (g->svars);
  g->svars = NULL;
  if (g->var2node != NULL)
    free (g->var2node);
  for (uint_t i = 0; i < g->nodes_size; i++)
    {
      if (g->mat[i] != NULL)
        noll_uid_array_delete (g->mat[i]);
      if (g->rmat[i] != NULL)
        noll_uid_array_delete (g->rmat[i]);
    }
  free (g->mat);
  free (g->rmat);
  noll_edge_array_delete (g->edges);
  if (g->diff != NULL)
    for (uint_t i = 0; i < g->nodes_size; i++)
      {
        free (g->diff[i]);
      }
  free (g->diff);
  /// g->data freed in formulas
  if (g->sloc2edge != NULL)
    free (g->sloc2edge);
  if (g->share != NULL)
    noll_share_array_delete (g->share);
  free (g);
}
示例#2
0
void
noll_form_free (noll_form_t * form)
{
  assert (form != NULL);
  if (form->lvars != NULL)
    {
      noll_var_array_delete (form->lvars);
      form->lvars = NULL;
    }
  if (form->svars != NULL)
    {
      noll_var_array_delete (form->svars);
      form->svars = NULL;
    }
  if (form->pure != NULL)
    {
      noll_pure_free (form->pure);
      form->pure = NULL;
    }
  if (form->space != NULL)
    {
      noll_space_free (form->space);
      form->space = NULL;
    }
  if (form->share != NULL)
    {
      noll_share_free (form->share);
      form->share = NULL;
    }
  free (form);
}
示例#3
0
void
noll_pred_binding_delete (noll_pred_binding_t * pdef)
{
    if (pdef == NULL)
        return;
    if (pdef->vars != NULL)
        noll_var_array_delete (pdef->vars);
    if (pdef->sigma_0 != NULL)
        noll_space_free (pdef->sigma_0);
    if (pdef->sigma_1 != NULL)
        noll_space_free (pdef->sigma_1);
    if (pdef->base_rules != NULL)
        noll_pred_rule_array_delete (pdef->base_rules);
    if (pdef->rec_rules != NULL)
        noll_pred_rule_array_delete (pdef->rec_rules);
    free (pdef);
}
示例#4
0
void
noll_pred_rule_delete (noll_pred_rule_t * r)
{
    if (r == NULL)
        return;
    if (r->vars != NULL)
        noll_var_array_delete (r->vars);
    if (r->pure != NULL)
        noll_pure_free (r->pure);
    if (r->pto != NULL)
        noll_space_free (r->pto);
    if (r->nst != NULL)
        noll_space_free (r->nst);
    if (r->rec != NULL)
        noll_space_free (r->rec);
    free (r);
}