opt_state->n_edges = 2 * opt_state->n_blocks;
opt_state->edges = (struct edge **)calloc(opt_state->n_edges, sizeof(*opt_state->edges));
if (opt_state->edges == NULL) {
- free(opt_state->blocks);
- opt_state->blocks = NULL;
opt_error(opt_state, "malloc");
}
*/
opt_state->levels = (struct block **)calloc(opt_state->n_blocks, sizeof(*opt_state->levels));
if (opt_state->levels == NULL) {
- free(opt_state->edges);
- free(opt_state->blocks);
- opt_state->edges = NULL;
- opt_state->blocks = NULL;
opt_error(opt_state, "malloc");
}
opt_state->space = (bpf_u_int32 *)malloc(2 * opt_state->n_blocks * opt_state->nodewords * sizeof(*opt_state->space)
+ opt_state->n_edges * opt_state->edgewords * sizeof(*opt_state->space));
if (opt_state->space == NULL) {
- free(opt_state->levels);
- free(opt_state->edges);
- free(opt_state->blocks);
- opt_state->levels = NULL;
- opt_state->edges = NULL;
- opt_state->blocks = NULL;
opt_error(opt_state, "malloc");
}
p = opt_state->space;
opt_state->maxval = 3 * max_stmts;
opt_state->vmap = (struct vmapinfo *)calloc(opt_state->maxval, sizeof(*opt_state->vmap));
if (opt_state->vmap == NULL) {
- free(opt_state->space);
- free(opt_state->levels);
- free(opt_state->edges);
- free(opt_state->blocks);
- opt_state->space = NULL;
- opt_state->levels = NULL;
- opt_state->edges = NULL;
- opt_state->blocks = NULL;
opt_error(opt_state, "malloc");
}
opt_state->vnode_base = (struct valnode *)calloc(opt_state->maxval, sizeof(*opt_state->vnode_base));
if (opt_state->vnode_base == NULL) {
- free(opt_state->vmap);
- free(opt_state->space);
- free(opt_state->levels);
- free(opt_state->edges);
- free(opt_state->blocks);
- opt_state->vmap = NULL;
- opt_state->space = NULL;
- opt_state->levels = NULL;
- opt_state->edges = NULL;
- opt_state->blocks = NULL;
opt_error(opt_state, "malloc");
}
}