On Sat, Aug 26, 2017 at 06:26:52PM +0200, Damien Grassart wrote: > To be consistent with the rest of the code, the index paramater should > not be evaluated multiple times. Calling this with rand() % arr.size > would otherwise generally segfault. > --- > ccan/darray/darray.h | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-)
Looks like a definite improvement, but I need a Signed-off-by line in order to apply it. Also.. identifiers starting with _ are technically reserved for system use. You'd probably get away with it, but it's best to avoid them. I usually put _ after the name instead for this sort of thing. > > diff --git a/ccan/darray/darray.h b/ccan/darray/darray.h > index 8d47645b..6dd34f08 100644 > --- a/ccan/darray/darray.h > +++ b/ccan/darray/darray.h > @@ -224,8 +224,9 @@ typedef darray(unsigned long) darray_ulong; > #define darray_pop_check(arr) ((arr).size ? darray_pop(arr) : NULL) > /* Warning, slow: Requires copying all elements after removed item. */ > #define darray_remove(arr, index) do { \ > - if (index < arr.size-1) \ > - memmove(&(arr).item[index], &(arr).item[index+1], > ((arr).size-1-index)*sizeof(*(arr).item)); \ > + size_t __index = index; \ > + if (__index < arr.size-1) \ > + memmove(&(arr).item[__index], &(arr).item[__index+1], > ((arr).size-1-__index)*sizeof(*(arr).item)); \ > (arr).size--; \ > } while(0) > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature
_______________________________________________ ccan mailing list ccan@lists.ozlabs.org https://lists.ozlabs.org/listinfo/ccan