On 12/08/14 18:54, Anton Khirnov wrote:
> ---
>  doc/APIchanges      |  3 +++
>  libavutil/mem.c     | 20 ++++++++++++++++++++
>  libavutil/mem.h     | 10 ++++++++++
>  libavutil/version.h |  2 +-
>  4 files changed, 34 insertions(+), 1 deletion(-)
> 
> diff --git a/doc/APIchanges b/doc/APIchanges
> index 6e5242e..fc56677 100644
> --- a/doc/APIchanges
> +++ b/doc/APIchanges
> @@ -13,6 +13,9 @@ libavutil:     2014-08-09
>  
>  API changes, most recent first:
>  
> +2014-08-xx - xxxxxxx - lavu 54.2.0 - mem.h
> +  Add av_strndup().
> +
>  2014-04-xx - xxxxxxx - lavr 2.1.0 - avresample.h
>    Add avresample_convert_frame() and avresample_config().
>  
> diff --git a/libavutil/mem.c b/libavutil/mem.c
> index be42342..129aff1 100644
> --- a/libavutil/mem.c
> +++ b/libavutil/mem.c
> @@ -222,6 +222,26 @@ char *av_strdup(const char *s)
>      return ptr;
>  }
>  
> +char *av_strndup(const char *s, size_t len)
> +{
> +    size_t len1;
> +    char *ret = NULL;
> +
> +    if (!s)
> +        return NULL;
> +
> +    len1 = strlen(s);
> +    len  = FFMIN(len, len1);
> +
> +    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);
> diff --git a/libavutil/mem.h b/libavutil/mem.h
> index 4a5e362..9f667c2 100644
> --- a/libavutil/mem.h
> +++ b/libavutil/mem.h
> @@ -218,6 +218,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;

av_alloc_size(2);


The rest seems ok.
_______________________________________________
libav-devel mailing list
libav-devel@libav.org
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to