From a52f844be42d618ed2df5ce307761b11d61f5f5b Mon Sep 17 00:00:00 2001 From: Sven Verdoolaege Date: Tue, 28 Jun 2011 20:17:59 +0200 Subject: add isl_vec_drop_els Signed-off-by: Sven Verdoolaege --- isl_vec.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'isl_vec.c') diff --git a/isl_vec.c b/isl_vec.c index 606f6faa..693af8e9 100644 --- a/isl_vec.c +++ b/isl_vec.c @@ -267,3 +267,28 @@ __isl_give isl_vec *isl_vec_sort(__isl_take isl_vec *vec) return vec; } + +__isl_give isl_vec *isl_vec_drop_els(__isl_take isl_vec *vec, + unsigned pos, unsigned n) +{ + if (n == 0) + return vec; + vec = isl_vec_cow(vec); + if (!vec) + return NULL; + + if (pos + n > vec->size) + isl_die(vec->ctx, isl_error_invalid, + "range out of bounds", goto error); + + if (pos + n != vec->size) + isl_seq_cpy(vec->el + pos, vec->el + pos + n, + vec->size - pos - n); + + vec->size -= n; + + return vec; +error: + isl_vec_free(vec); + return NULL; +} -- cgit v1.2.3