return ret;
}
-static void *t_memdup(const void *data, size_t size)
+static void *t_memdup_noconst(const void *data, size_t size)
{
void *mem = t_malloc_no0(size);
memcpy(mem, data, size);
return mem;
}
+const void *t_memdup(const void *data, size_t size)
+{
+ return t_memdup_noconst(data, size);
+}
+
const char *t_strdup(const char *str)
{
return t_strdup_noconst(str);
{
if (str == NULL)
return NULL;
- return t_memdup(str, strlen(str) + 1);
+ return t_memdup_noconst(str, strlen(str) + 1);
}
const char *t_strdup_empty(const char *str)
/* return NULL if str = "" */
const char *t_strdup_empty(const char *str) ATTR_MALLOC;
/* *end isn't included */
+const void *t_memdup(const void *data, size_t size) ATTR_MALLOC;
const char *t_strdup_until(const void *start, const void *end)
ATTR_MALLOC ATTR_RETURNS_NONNULL;
const char *t_strndup(const void *str, size_t max_chars) ATTR_MALLOC;