X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fgallium%2Fauxiliary%2Futil%2Fu_dynarray.h;h=980cadf22d1b1e5eb7320dadce0dde5021ba7f9e;hb=8ed6b1400bc8a78f46340f41aaf2e88b24c23267;hp=5597581ef3e0ef76dced515c0dcd1adba4e0eceb;hpb=bf7e0e839f3221e198e2c50810afd967d91a5a77;p=mesa.git diff --git a/src/gallium/auxiliary/util/u_dynarray.h b/src/gallium/auxiliary/util/u_dynarray.h index 5597581ef3e..980cadf22d1 100644 --- a/src/gallium/auxiliary/util/u_dynarray.h +++ b/src/gallium/auxiliary/util/u_dynarray.h @@ -87,15 +87,16 @@ util_dynarray_grow(struct util_dynarray *buf, int diff) static INLINE void util_dynarray_trim(struct util_dynarray *buf) { - if(buf->size != buf->capacity) - {} - else if(buf->size) { - buf->data = REALLOC(buf->data, buf->capacity, buf->size); - buf->capacity = buf->size; - } else { - FREE(buf->data); - buf->data = 0; - buf->capacity = 0; + if (buf->size != buf->capacity) { + if (buf->size) { + buf->data = REALLOC(buf->data, buf->capacity, buf->size); + buf->capacity = buf->size; + } + else { + FREE(buf->data); + buf->data = 0; + buf->capacity = 0; + } } } @@ -105,6 +106,9 @@ util_dynarray_trim(struct util_dynarray *buf) #define util_dynarray_pop_ptr(buf, type) (type*)((char*)(buf)->data + ((buf)->size -= sizeof(type))) #define util_dynarray_pop(buf, type) *util_dynarray_pop_ptr(buf, type) #define util_dynarray_contains(buf, type) ((buf)->size >= sizeof(type)) +#define util_dynarray_element(buf, type, idx) ((type*)(buf)->data + (idx)) +#define util_dynarray_begin(buf) ((buf)->data) +#define util_dynarray_end(buf) ((void*)util_dynarray_element((buf), char, (buf)->size)) #endif /* U_DYNARRAY_H */