avutil/dict: Deduplicate freeing dictionary

Reviewed-by: epirat07@gmail.com
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
release/7.0
Andreas Rheinhardt 11 months ago
parent 6cf904ac3d
commit dfffe03755
  1. 10
      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;
}

Loading…
Cancel
Save