#define U_DYNARRAY_H
#include <stdlib.h>
+#include <string.h>
#include "ralloc.h"
#ifdef __cplusplus
return p;
}
+static inline void
+util_dynarray_clone(struct util_dynarray *buf, void *mem_ctx,
+ struct util_dynarray *from_buf)
+{
+ util_dynarray_init(buf, mem_ctx);
+ util_dynarray_resize(buf, from_buf->size);
+ memcpy(buf->data, from_buf->data, from_buf->size);
+}
+
static inline void *
util_dynarray_grow(struct util_dynarray *buf, int diff)
{
#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))
+#define util_dynarray_num_elements(buf, type) ((buf)->size / sizeof(type))
#define util_dynarray_foreach(buf, type, elem) \
for (type *elem = (type *)(buf)->data; \