53 static_cast<T *
>(malloc(
num *
sizeof(
T)));
59 int cstrlen = strlen(cstr);
62 memcpy(dse->
str, cstr, cstrlen + 1);
66 ds->last = ds->elems = dse;
69 ds->last = ds->last->next = dse;
72 ds->curlen += cstrlen;
81 memcpy(dse->
str, cstr, cstrlen);
82 dse->
str[cstrlen] =
'\0';
86 ds->last = ds->elems = dse;
89 ds->last = ds->last->next = dse;
92 ds->curlen += cstrlen;
97 char *
str, fixed_buf[256];
101 if (
str != fixed_buf) {
109 char *
str, fixed_buf[256];
116 if (
str != fixed_buf) {
132 for (s = rets, dse = ds->elems; dse; dse = dse->
next) {
133 int slen = strlen(dse->
str);
135 memcpy(s, dse->
str, slen);
140 rets[ds->curlen] =
'\0';
157 dse_next = dse->
next;
void BLI_dynstr_appendf(DynStr *__restrict ds, const char *__restrict format,...)
DynStr * BLI_dynstr_new_memarena()
char * BLI_dynstr_get_cstring(const DynStr *ds)
DynStr * BLI_dynstr_new()
void BLI_dynstr_free(DynStr *ds)
void BLI_dynstr_nappend(DynStr *__restrict ds, const char *cstr, int len)
void BLI_dynstr_get_cstring_ex(const DynStr *__restrict ds, char *__restrict rets)
void BLI_dynstr_clear(DynStr *ds)
void BLI_dynstr_append(DynStr *__restrict ds, const char *cstr)
T * dynstr_alloc(DynStr *__restrict ds, size_t num=1)
void BLI_dynstr_vappendf(DynStr *__restrict ds, const char *__restrict format, va_list args)
int BLI_dynstr_get_len(const DynStr *ds)
A dynamically sized string ADT.
void BLI_kdtree_nd_ free(KDTree *tree)
#define BLI_MEMARENA_STD_BUFSIZE
MemArena * BLI_memarena_new(size_t bufsize, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_RETURNS_NONNULL ATTR_NONNULL(2) ATTR_MALLOC
void BLI_memarena_free(MemArena *ma) ATTR_NONNULL(1)
void * BLI_memarena_alloc(MemArena *ma, size_t size) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1) ATTR_MALLOC ATTR_ALLOC_SIZE(2)
void BLI_memarena_clear(MemArena *ma) ATTR_NONNULL(1)
ATTR_WARN_UNUSED_RESULT const size_t num
char * BLI_vsprintfN_with_buffer(char *fixed_buf, size_t fixed_buf_size, size_t *result_len, const char *__restrict format, va_list args) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1
int char char int int int int size_t BLI_strnlen(const char *str, size_t maxlen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
Read Guarded memory(de)allocation.
void * MEM_callocN(size_t len, const char *str)
void * MEM_malloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)