On 06/03/14 19:40, Patrice Clement wrote:
> ---
>  libavutil/dict.c | 53 +++++++++++++++++++++++++++++++----------------------
>  1 file changed, 31 insertions(+), 22 deletions(-)
> 
> diff --git a/libavutil/dict.c b/libavutil/dict.c
> index 9ac4831..86db8af 100644
> --- a/libavutil/dict.c
> +++ b/libavutil/dict.c
> @@ -32,43 +32,51 @@ struct AVDictionary {
>  
>  int av_dict_count(const AVDictionary *m)
>  {
> -    return m ? m->count : 0;
> +    return m
> +           ? m->count
> +           : 0;
>  }
>  

This hunk should be dropped.

> -AVDictionaryEntry *
> -av_dict_get(AVDictionary *m, const char *key, const AVDictionaryEntry *prev, 
> int flags)
> +AVDictionaryEntry *av_dict_get(AVDictionary *m, const char *key,
> +                               const AVDictionaryEntry *prev,
> +                               int flags)
>  {
>      unsigned int i, j;
>  
> -    if(!m)
> +    if (!m)
>          return NULL;
>  
> -    if(prev) i= prev - m->elems + 1;
> -    else     i= 0;
> +    if (prev)
> +        i = prev - m->elems + 1;
> +    else
> +        i = 0;
>  
> -    for(; i<m->count; i++){
> -        const char *s= m->elems[i].key;
> -        if(flags & AV_DICT_MATCH_CASE) for(j=0;         s[j]  ==         
> key[j]  && key[j]; j++);
> -        else                               for(j=0; av_toupper(s[j]) == 
> av_toupper(key[j]) && key[j]; j++);
> -        if(key[j])
> +    for (; i < m->count; i++) {
> +        const char *s = m->elems[i].key;
> +        if (flags & AV_DICT_MATCH_CASE)
> +            for (j = 0; s[j] == key[j] && key[j]; j++) ;
> +        else
> +            for (j = 0; av_toupper(s[j]) == av_toupper(key[j]) && key[j]; 
> j++) ;
> +        if (key[j])
>              continue;
> -        if(s[j] && !(flags & AV_DICT_IGNORE_SUFFIX))
> +        if (s[j] && !(flags & AV_DICT_IGNORE_SUFFIX))
>              continue;
>          return &m->elems[i];
>      }
>      return NULL;
>  }
>  
> -int av_dict_set(AVDictionary **pm, const char *key, const char *value, int 
> flags)
> +int av_dict_set(AVDictionary **pm, const char *key, const char *value,
> +                int flags)
>  {
> -    AVDictionary      *m = *pm;
> +    AVDictionary *m        = *pm;
>      AVDictionaryEntry *tag = av_dict_get(m, key, NULL, flags);
> -    char *oldval = NULL;
> +    char *oldval           = NULL;
>  
> -    if(!m)
> +    if (!m)
>          m = *pm = av_mallocz(sizeof(*m));
>  
> -    if(tag) {
> +    if (tag) {
>          if (flags & AV_DICT_DONT_OVERWRITE)
>              return 0;
>          if (flags & AV_DICT_APPEND)
> @@ -78,17 +86,18 @@ int av_dict_set(AVDictionary **pm, const char *key, const 
> char *value, int flags
>          av_free(tag->key);
>          *tag = m->elems[--m->count];
>      } else {
> -        AVDictionaryEntry *tmp = av_realloc(m->elems, (m->count+1) * 
> sizeof(*m->elems));
> -        if(tmp) {
> +        AVDictionaryEntry *tmp =
> +            av_realloc(m->elems, (m->count + 1) * sizeof(*m->elems));

Probably we could use the av_reallocp_array, willing to provide a patch
for it?

> +        if (tmp) {
>              m->elems = tmp;
>          } else
>              return AVERROR(ENOMEM);
>      }
>      if (value) {
>          if (flags & AV_DICT_DONT_STRDUP_KEY) {
> -            m->elems[m->count].key  = key;
> +            m->elems[m->count].key = key;
>          } else
> -        m->elems[m->count].key  = av_strdup(key  );
> +            m->elems[m->count].key = av_strdup(key);
>          if (flags & AV_DICT_DONT_STRDUP_VAL) {
>              m->elems[m->count].value = value;
>          } else if (oldval && flags & AV_DICT_APPEND) {
> @@ -161,7 +170,7 @@ void av_dict_free(AVDictionary **pm)
>      AVDictionary *m = *pm;
>  
>      if (m) {
> -        while(m->count--) {
> +        while (m->count--) {
>              av_free(m->elems[m->count].key);
>              av_free(m->elems[m->count].value);
>          }
> 

The rest looks ok, thanks. I'll push it in a bit if Diego doesn't have
better ideas.

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to