clean up isl_pw_qpolynomial_neg
[platform/upstream/isl.git] / isl_affine_hull.c
index 73a6590..dcb3d18 100644 (file)
@@ -295,7 +295,7 @@ static struct isl_vec *outside_point(struct isl_tab *tab, isl_int *eq, int up)
        if (!up)
                isl_seq_neg(eq, eq, 1 + dim);
 
-       if (isl_tab_rollback(tab, snap) < 0)
+       if (sample && isl_tab_rollback(tab, snap) < 0)
                goto error;
 
        return sample;
@@ -723,8 +723,11 @@ static struct isl_basic_set *affine_hull_with_cone(struct isl_basic_set *bset,
                else
                        isl_mat_free(U);
                hull = isl_basic_set_preimage(hull, Q);
-               isl_vec_free(hull->sample);
-               hull->sample = sample;
+               if (hull) {
+                       isl_vec_free(hull->sample);
+                       hull->sample = sample;
+               } else
+                       isl_vec_free(sample);
        }
 
        isl_basic_set_free(cone);