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); }
void noll_share_free (noll_share_array * s) { if (s == NULL) return; // TODO: free also the sterms in each element noll_share_array_delete (s); }