doc: update supported versions of clang
[isl.git] / isl_multi_pw_aff_pullback_templ.c
index b5230b1..fc5aed2 100644 (file)
@@ -45,13 +45,14 @@ __isl_give isl_multi_pw_aff *FN(isl_multi_pw_aff_pullback,BASE)(
 
        space = isl_space_join(FN(TYPE,get_space)(fn),
                                isl_multi_pw_aff_get_space(mpa));
-       if (!space)
-               goto error;
 
        for (i = 0; i < n; ++i) {
-               mpa->u.p[i] = FN(isl_pw_aff_pullback,BASE)(mpa->u.p[i],
-                                                   FN(TYPE,copy)(fn));
-               if (!mpa->u.p[i])
+               isl_pw_aff *pa;
+
+               pa = isl_multi_pw_aff_take_at(mpa, i);
+               pa = FN(isl_pw_aff_pullback,BASE)(pa, FN(TYPE,copy)(fn));
+               mpa = isl_multi_pw_aff_restore_at(mpa, i, pa);
+               if (!mpa)
                        goto error;
        }
        if (isl_multi_pw_aff_has_explicit_domain(mpa)) {
@@ -62,8 +63,7 @@ __isl_give isl_multi_pw_aff *FN(isl_multi_pw_aff_pullback,BASE)(
        }
 
        FN(TYPE,free)(fn);
-       isl_space_free(mpa->space);
-       mpa->space = space;
+       isl_multi_pw_aff_restore_space(mpa, space);
        return mpa;
 error:
        isl_space_free(space);