diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-03-05 16:34:07 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2024-03-08 01:01:49 +0100 |
commit | dfffe037555f3564a22e5f456d93a858bf7e3588 (patch) | |
tree | b7a9167b7028c62f41e100efad5670ac58187c22 /libavutil | |
parent | 6cf904ac3d6fdbc074c28d1359b4a6b60462d963 (diff) |
avutil/dict: Deduplicate freeing dictionary
Reviewed-by: epirat07@gmail.com
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Diffstat (limited to 'libavutil')
-rw-r--r-- | libavutil/dict.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/libavutil/dict.c b/libavutil/dict.c index 7f23d5336a..6fb09399ba 100644 --- a/libavutil/dict.c +++ b/libavutil/dict.c @@ -145,11 +145,8 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value, m->elems[m->count].value = copy_value; m->count++; } else { - if (!m->count) { - av_freep(&m->elems); - av_freep(pm); - } - av_freep(©_key); + err = 0; + goto end; } return 0; @@ -157,12 +154,13 @@ int av_dict_set(AVDictionary **pm, const char *key, const char *value, enomem: err = AVERROR(ENOMEM); err_out: + av_free(copy_value); +end: if (m && !m->count) { av_freep(&m->elems); av_freep(pm); } av_free(copy_key); - av_free(copy_value); return err; } |