On Sat, Mar 16, 2019 at 09:28:48AM +0800, Qiang Yu wrote: > This is for the case that user only know a max size > it wants to append to the array and enlarge the array > capacity before writing into it. > > Signed-off-by: Qiang Yu <yuq...@gmail.com> > --- > src/util/u_dynarray.h | 19 +++++++++++++++---- > 1 file changed, 15 insertions(+), 4 deletions(-) > > diff --git a/src/util/u_dynarray.h b/src/util/u_dynarray.h > index 9bed2b9c25c..c5217082b7f 100644 > --- a/src/util/u_dynarray.h > +++ b/src/util/u_dynarray.h > @@ -77,11 +77,9 @@ util_dynarray_clear(struct util_dynarray *buf) > > #define DYN_ARRAY_INITIAL_SIZE 64 > > -/* use util_dynarray_trim to reduce the allocated storage */ > static inline void * > -util_dynarray_resize(struct util_dynarray *buf, unsigned newsize) > +util_dynarray_ensure_cap(struct util_dynarray *buf, unsigned newsize)
Rename the parameter to newcap to avoid confusion in the body. > { > - void *p; > if (newsize > buf->capacity) { > if (buf->capacity == 0) > buf->capacity = DYN_ARRAY_INITIAL_SIZE; > @@ -96,7 +94,20 @@ util_dynarray_resize(struct util_dynarray *buf, unsigned > newsize) > } > } > > - p = (void *)((char *)buf->data + buf->size); > + return (void *)((char *)buf->data + buf->size); > +} > + > +static inline void * > +util_dynarray_enlarge(struct util_dynarray *buf, int diff) > +{ > + return util_dynarray_ensure_cap(buf, buf->size + diff); > +} We already have util_dynarray_grow for size, so enlarge can be confusing. What do you think about calling this one util_dynarray_grow_cap? > + > +/* use util_dynarray_trim to reduce the allocated storage */ > +static inline void * > +util_dynarray_resize(struct util_dynarray *buf, unsigned newsize) > +{ > + void *p = util_dynarray_ensure_cap(buf, newsize); > buf->size = newsize; > > return p; > -- > 2.17.1 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev Caio _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev