X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fbe%2Fbecopyilp2.c;h=42fb15cc9d953e076ab7974cd71d6fb8e30b7abe;hb=afbbc0b1ccd684c4c24bfd43d0f994123245f39f;hp=7208ae627b1283f7f6a74bcc452c0eaf9f40f9f4;hpb=1ce363f80e6a204d4011f85813362d9bd1d0e7e4;p=libfirm diff --git a/ir/be/becopyilp2.c b/ir/be/becopyilp2.c index 7208ae627..42fb15cc9 100644 --- a/ir/be/becopyilp2.c +++ b/ir/be/becopyilp2.c @@ -500,16 +500,14 @@ static void ilp2_build(ilp_env_t *ienv) { static void ilp2_apply(ilp_env_t *ienv) { local_env_t *lenv = ienv->env; - double *sol; - lpp_sol_state_t state; - int i, count; + int i; /* first check if there was sth. to optimize */ if (lenv->first_x_var >= 0) { + int count = lenv->last_x_var - lenv->first_x_var + 1; + double *sol = XMALLOCN(double, count); + lpp_sol_state_t state = lpp_get_solution(ienv->lp, sol, lenv->first_x_var, lenv->last_x_var); - count = lenv->last_x_var - lenv->first_x_var + 1; - sol = xmalloc(count * sizeof(sol[0])); - state = lpp_get_solution(ienv->lp, sol, lenv->first_x_var, lenv->last_x_var); if (state != lpp_optimal) { printf("WARNING %s: Solution state is not 'optimal': %d\n", ienv->co->name, state); assert(state >= lpp_feasible && "The solution should at least be feasible!"); @@ -531,6 +529,8 @@ static void ilp2_apply(ilp_env_t *ienv) { assert(0 && "This should be a x-var"); } } + + xfree(sol); } #ifdef COPYOPT_STAT