mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
mem: add av_strndup() for duplicating substrings
This commit is contained in:
parent
aa51b0492b
commit
8ddc32629a
@ -13,6 +13,9 @@ libavutil: 2014-08-09
|
||||
|
||||
API changes, most recent first:
|
||||
|
||||
2014-08-xx - xxxxxxx - lavu 54.03.0 - mem.h
|
||||
Add av_strndup().
|
||||
|
||||
2014-xx-xx - xxxxxxx - lavu 54.02.0 - opt.h
|
||||
Add av_opt_get_dict_val/set_dict_val with AV_OPT_TYPE_DICT to support
|
||||
dictionary types being set as options.
|
||||
|
@ -222,6 +222,26 @@ char *av_strdup(const char *s)
|
||||
return ptr;
|
||||
}
|
||||
|
||||
char *av_strndup(const char *s, size_t len)
|
||||
{
|
||||
char *ret = NULL, *end;
|
||||
|
||||
if (!s)
|
||||
return NULL;
|
||||
|
||||
end = memchr(s, 0, len);
|
||||
if (end)
|
||||
len = end - s;
|
||||
|
||||
ret = av_realloc(NULL, len + 1);
|
||||
if (!ret)
|
||||
return NULL;
|
||||
|
||||
memcpy(ret, s, len);
|
||||
ret[len] = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void fill16(uint8_t *dst, int len)
|
||||
{
|
||||
uint32_t v = AV_RN16(dst - 2);
|
||||
|
@ -217,6 +217,16 @@ av_alloc_size(1, 2) static inline void *av_mallocz_array(size_t nmemb, size_t si
|
||||
*/
|
||||
char *av_strdup(const char *s) av_malloc_attrib;
|
||||
|
||||
/**
|
||||
* Duplicate a substring of the string s.
|
||||
* @param s string to be duplicated
|
||||
* @param len the maximum length of the resulting string (not counting the
|
||||
* terminating byte).
|
||||
* @return Pointer to a newly-allocated string containing a
|
||||
* copy of s or NULL if the string cannot be allocated.
|
||||
*/
|
||||
char *av_strndup(const char *s, size_t len) av_malloc_attrib;
|
||||
|
||||
/**
|
||||
* Free a memory block which has been allocated with av_malloc(z)() or
|
||||
* av_realloc() and set the pointer pointing to it to NULL.
|
||||
|
@ -54,7 +54,7 @@
|
||||
*/
|
||||
|
||||
#define LIBAVUTIL_VERSION_MAJOR 54
|
||||
#define LIBAVUTIL_VERSION_MINOR 2
|
||||
#define LIBAVUTIL_VERSION_MINOR 3
|
||||
#define LIBAVUTIL_VERSION_MICRO 0
|
||||
|
||||
#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \
|
||||
|
Loading…
Reference in New Issue
Block a user