[FFmpeg-cvslog] avutil/dict: Deduplicate freeing dictionary

Andreas Rheinhardt git at videolan.org
Fri Mar 8 02:26:06 EET 2024


ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Tue Mar  5 16:34:07 2024 +0100| [dfffe037555f3564a22e5f456d93a858bf7e3588] | committer: Andreas Rheinhardt

avutil/dict: Deduplicate freeing dictionary

Reviewed-by: epirat07 at gmail.com
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=dfffe037555f3564a22e5f456d93a858bf7e3588
---

 libavutil/dict.c | 10 ++++------
 1 file 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(&copy_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;
 }
 



More information about the ffmpeg-cvslog mailing list