On 11/26/2022 11:46 AM, Marvin Scholz wrote:
---
  libavutil/opt.c        | 12 ++++++------
  libavutil/tests/dict.c |  2 +-
  2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/libavutil/opt.c b/libavutil/opt.c
index a3940f47fb..0a909a8b22 100644
--- a/libavutil/opt.c
+++ b/libavutil/opt.c
@@ -1742,14 +1742,14 @@ void av_opt_free(void *obj)
int av_opt_set_dict2(void *obj, AVDictionary **options, int search_flags)
  {
-    AVDictionaryEntry *t = NULL;
+    const AVDictionaryEntry *t = NULL;
      AVDictionary    *tmp = NULL;
      int ret;
if (!options)
          return 0;
- while ((t = av_dict_get(*options, "", t, AV_DICT_IGNORE_SUFFIX))) {
+    while ((t = av_dict_iterate(*options, t))) {
          ret = av_opt_set(obj, t->key, t->value, search_flags);
          if (ret == AVERROR_OPTION_NOT_FOUND)
              ret = av_dict_set(&tmp, t->key, t->value, 0);
@@ -2137,16 +2137,16 @@ FF_ENABLE_DEPRECATION_WARNINGS
      case AV_OPT_TYPE_DICT: {
          AVDictionary *dict1 = NULL;
          AVDictionary *dict2 = *(AVDictionary **)dst;
-        AVDictionaryEntry *en1 = NULL;
-        AVDictionaryEntry *en2 = NULL;
+        const AVDictionaryEntry *en1 = NULL;
+        const AVDictionaryEntry *en2 = NULL;
          ret = av_dict_parse_string(&dict1, o->default_val.str, "=", ":", 0);
          if (ret < 0) {
              av_dict_free(&dict1);
              return ret;
          }
          do {
-            en1 = av_dict_get(dict1, "", en1, AV_DICT_IGNORE_SUFFIX);
-            en2 = av_dict_get(dict2, "", en2, AV_DICT_IGNORE_SUFFIX);
+            en1 = av_dict_iterate(dict1, en1);
+            en2 = av_dict_iterate(dict2, en2);
          } while (en1 && en2 && !strcmp(en1->key, en2->key) && 
!strcmp(en1->value, en2->value));
          av_dict_free(&dict1);
          return (!en1 && !en2);
diff --git a/libavutil/tests/dict.c b/libavutil/tests/dict.c
index d053545f4d..91567289c2 100644
--- a/libavutil/tests/dict.c
+++ b/libavutil/tests/dict.c
@@ -52,7 +52,7 @@ static void test_separators(const AVDictionary *m, const char 
pair, const char v
  int main(void)
  {
      AVDictionary *dict = NULL;
-    AVDictionaryEntry *e;
+    const AVDictionaryEntry *e;

Spurious change? You're not touching the test otherwise.

In any case, feel free to add the following to this patch:

diff --git a/libavutil/tests/dict.c b/libavutil/tests/dict.c
index d053545f4d..468391a9f3 100644
--- a/libavutil/tests/dict.c
+++ b/libavutil/tests/dict.c
@@ -52,7 +52,7 @@ static void test_separators(const AVDictionary *m, const char 
pair, const char v
 int main(void)
 {
     AVDictionary *dict = NULL;
-    AVDictionaryEntry *e;
+    const AVDictionaryEntry *e;
     char *buffer = NULL;

     printf("Testing av_dict_get_string() and av_dict_parse_string()\n");
@@ -94,8 +94,13 @@ int main(void)
     if (av_dict_get(dict, NULL, NULL, 0))
         printf("av_dict_get() does not correctly handle NULL key.\n");
     e = NULL;
+    printf("Iterating with av_dict_get()\n");
     while ((e = av_dict_get(dict, "", e, AV_DICT_IGNORE_SUFFIX)))
         printf("%s %s\n", e->key, e->value);
+    e = NULL;
+    printf("Iterating with av_dict_iterate()\n");
+    while ((e = av_dict_iterate(dict, e)))
+        printf("%s %s\n", e->key, e->value);
     av_dict_free(&dict);

     if (av_dict_set(&dict, NULL, "a", 0) >= 0 ||
diff --git a/tests/ref/fate/dict b/tests/ref/fate/dict
index 7205e4c845..a519b49163 100644
--- a/tests/ref/fate/dict
+++ b/tests/ref/fate/dict
@@ -30,6 +30,14 @@ ret 0
 aaa aaa   bbb bbb   ccc ccc   \,='" \,='"

 Testing av_dict_set()
+Iterating with av_dict_get()
+a a
+b b
+c c
+d d
+e e
+ff ff
+Iterating with av_dict_iterate()
 a a
 b b
 c c

That should be enough to compare the output of both functions.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to