avutil/dict: Use av_freep() to avoid leaving stale pointers in memory

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/101/head
Michael Niedermayer 10 years ago
parent 9e89347329
commit 336bb3f706
  1. 10
      libavutil/dict.c

@ -120,7 +120,7 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
m->count++;
}
if (!m->count) {
av_free(m->elems);
av_freep(&m->elems);
av_freep(pm);
}
@ -128,7 +128,7 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value,
err_out:
if (m && !m->count) {
av_free(m->elems);
av_freep(&m->elems);
av_freep(pm);
}
if (flags & AV_DICT_DONT_STRDUP_KEY) av_free((void*)key);
@ -197,10 +197,10 @@ void av_dict_free(AVDictionary **pm)
if (m) {
while (m->count--) {
av_free(m->elems[m->count].key);
av_free(m->elems[m->count].value);
av_freep(&m->elems[m->count].key);
av_freep(&m->elems[m->count].value);
}
av_free(m->elems);
av_freep(&m->elems);
}
av_freep(pm);
}

Loading…
Cancel
Save