From: Sven Verdoolaege Date: Tue, 17 Aug 2010 07:47:21 +0000 (+0200) Subject: fix isl_qpolynomial_fold_reset_dim X-Git-Tag: isl-0.04~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f0a93a211d458c17f0333d136f3288a30698ade0;p=platform%2Fupstream%2Fisl.git fix isl_qpolynomial_fold_reset_dim In particular, the old version wouldn't cow and it wouldn't change the dimension of the nested isl_qpolynomials. Signed-off-by: Sven Verdoolaege --- diff --git a/isl_fold.c b/isl_fold.c index fd50f90..6d30d1c 100644 --- a/isl_fold.c +++ b/isl_fold.c @@ -46,9 +46,19 @@ error: __isl_give isl_qpolynomial_fold *isl_qpolynomial_fold_reset_dim( __isl_take isl_qpolynomial_fold *fold, __isl_take isl_dim *dim) { + int i; + + fold = isl_qpolynomial_fold_cow(fold); if (!fold || !dim) goto error; + for (i = 0; i < fold->n; ++i) { + fold->qp[i] = isl_qpolynomial_reset_dim(fold->qp[i], + isl_dim_copy(dim)); + if (!fold->qp[i]) + goto error; + } + isl_dim_free(fold->dim); fold->dim = dim; diff --git a/isl_polynomial.c b/isl_polynomial.c index 777c701..5cadabf 100644 --- a/isl_polynomial.c +++ b/isl_polynomial.c @@ -322,6 +322,7 @@ __isl_give struct isl_upoly_rec *isl_upoly_alloc_rec(struct isl_ctx *ctx, __isl_give isl_qpolynomial *isl_qpolynomial_reset_dim( __isl_take isl_qpolynomial *qp, __isl_take isl_dim *dim) { + qp = isl_qpolynomial_cow(qp); if (!qp || !dim) goto error;