From a65c80d25a8db4b7e5e6e15dba498bd7373d9713 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Tue, 2 May 2017 20:17:16 +0200 Subject: [PATCH] Fix bug in insert_v (missing initialisation). Update API of insert_v to give the number of elements to insert (much more logic). --- m-array.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/m-array.h b/m-array.h index 520251d2..6faa5594 100644 --- a/m-array.h +++ b/m-array.h @@ -419,11 +419,11 @@ } \ \ static inline void \ - M_C3(array_, name, _insert_v)(array_t v, size_t i, size_t j) \ + M_C3(array_, name, _insert_v)(array_t v, size_t i, size_t num) \ { \ ARRAYI_CONTRACT(v); \ - assert(i < j && j <= v->size); \ - size_t size = v->size + (j-i); \ + assert(i <= v->size); \ + size_t size = v->size + num; \ if (size > v->alloc) { \ size_t alloc = ARRAYI_INC_ALLOC_SIZE(oplist, size) ; \ type *ptr = M_GET_REALLOC oplist (type, v->ptr, alloc); \ @@ -434,9 +434,9 @@ v->ptr = ptr; \ v->alloc = alloc; \ } \ - memmove(&v->ptr[j], &v->ptr[i], sizeof(type)*(v->size - i) ); \ - for(size_t k = i ; k < j; k++) \ - M_GET_INIT oplist(v->ptr[i]); \ + memmove(&v->ptr[i+num], &v->ptr[i], sizeof(type)*(v->size - i) ); \ + for(size_t k = i ; k < i+num; k++) \ + M_GET_INIT oplist(v->ptr[k]); \ v->size = size; \ ARRAYI_CONTRACT(v); \ } \