projects
/
platform
/
upstream
/
isl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
isl_tab_pip.c: sol_map_add: fix double free on error path
[platform/upstream/isl.git]
/
isl_tab_pip.c
diff --git
a/isl_tab_pip.c
b/isl_tab_pip.c
index
073380e
..
78f71f2
100644
(file)
--- a/
isl_tab_pip.c
+++ b/
isl_tab_pip.c
@@
-650,10
+650,10
@@
static void sol_map_add(struct isl_sol_map *sol,
bmap = isl_basic_map_finalize(bmap);
sol->map = isl_map_grow(sol->map, 1);
sol->map = isl_map_add_basic_map(sol->map, bmap);
bmap = isl_basic_map_finalize(bmap);
sol->map = isl_map_grow(sol->map, 1);
sol->map = isl_map_add_basic_map(sol->map, bmap);
- if (!sol->map)
- goto error;
isl_basic_set_free(dom);
isl_mat_free(M);
isl_basic_set_free(dom);
isl_mat_free(M);
+ if (!sol->map)
+ sol->sol.error = 1;
return;
error:
isl_basic_set_free(dom);
return;
error:
isl_basic_set_free(dom);
@@
-4677,6
+4677,14
@@
int isl_basic_map_foreach_lexmax(__isl_keep isl_basic_map *bmap,
return isl_basic_map_foreach_lexopt(bmap, 1, fn, user);
}
return isl_basic_map_foreach_lexopt(bmap, 1, fn, user);
}
+int isl_basic_set_foreach_lexmax(__isl_keep isl_basic_set *bset,
+ int (*fn)(__isl_take isl_basic_set *dom, __isl_take isl_aff_list *list,
+ void *user),
+ void *user)
+{
+ return isl_basic_map_foreach_lexmax(bset, fn, user);
+}
+
/* Check if the given sequence of len variables starting at pos
* represents a trivial (i.e., zero) solution.
* The variables are assumed to be non-negative and to come in pairs,
/* Check if the given sequence of len variables starting at pos
* represents a trivial (i.e., zero) solution.
* The variables are assumed to be non-negative and to come in pairs,