From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 88CB8406C8 for ; Sun, 27 Nov 2022 15:05:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1BD7768B115; Sun, 27 Nov 2022 17:05:53 +0200 (EET) Received: from mail-oa1-f53.google.com (mail-oa1-f53.google.com [209.85.160.53]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3437268A345 for ; Sun, 27 Nov 2022 17:05:46 +0200 (EET) Received: by mail-oa1-f53.google.com with SMTP id 586e51a60fabf-141ca09c2fbso10363583fac.6 for ; Sun, 27 Nov 2022 07:05:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=GGya4/FYkhw2AdV3nLvElD3H2kxNxQ/5aYRWwMkzVfw=; b=ZOjB+K6grNY/gQ5i58zsKJjZmq25IWBskKhbNbntlFoVZawRXcUzKWalj0/lQyf8hx ehof6Uv3Y0shdymno/ocamtvlkylh+Eos949fuqP2Xq3fDn/kQ/DACZYWT/hiFUAdTTw 4nuLRBdW3zTLJPLTBsPxhhBxSFGlHFiBMD4UQdKXsqoS/FDqyhFUYiuCScMsYIKipNjF UTWrPNRLK1CGJxHqSqC/z64zoGUnkqPoVLmvlxVU2U82XlTrjhTZvretAipWegDqMT32 i90aWb2duF6MbrpexLSU+8arNCu907g0Is19cgBqts1nK6PPwTZuQ355t0pT4229W2j4 beiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:in-reply-to:from:references:to :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=GGya4/FYkhw2AdV3nLvElD3H2kxNxQ/5aYRWwMkzVfw=; b=t1n0UPgul3Ob6WpkCjj1tpIJxQyglAuNJ8U+k8gilrX74nJglgp3h5bnZMouDov1d9 42XbEzlHzITTmqq5gwof9DDKHX/rOwgsIWUcc8Qt6+lSGVy9o2FWNWzQtRq0jl2r1pc1 UBBHdy689mqks2EA5qDWdjULSUqaurvFsnMjNeRyvRBMkG+WDisupJe6DpEKJfJpVQKO PCzhrCUKCG5TwQvZ+oZhJW5P9iH01la/L2RWN7yR6PE0dlRxCJJumn+4uQuSpljcFkO0 Fj3MbLplN2E1cCN5D4A6BkGQt6JK+rjiIpYwsVLMNx9TK+ruvDdpYOWbQ3lPWB/b/HLk b+Gg== X-Gm-Message-State: ANoB5pn/qnijkrLtaBie/ugOXhopktpknXp7PY9S0/KDEzzV1e30LcOO hqCqlPqZA+voNLpToxgA80MvTEPKEz0= X-Google-Smtp-Source: AA0mqf54lDRBIKBenn7Tc51SuwFPf0ylRkXqbd6Yjgw0JPBX1fCSvPiiuhbLj58Aku/UpIOWLsAxxA== X-Received: by 2002:a05:6870:ea98:b0:13c:765a:3140 with SMTP id s24-20020a056870ea9800b0013c765a3140mr14991507oap.5.1669561543797; Sun, 27 Nov 2022 07:05:43 -0800 (PST) Received: from [192.168.0.15] ([181.85.72.69]) by smtp.gmail.com with ESMTPSA id r26-20020a4ae51a000000b0049b17794d19sm3540665oot.20.2022.11.27.07.05.42 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 27 Nov 2022 07:05:43 -0800 (PST) Message-ID: <0bfac0d8-25e2-af99-e508-e57112a3a3bc@gmail.com> Date: Sun, 27 Nov 2022 12:06:31 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20221125013046.40904-1-epirat07@gmail.com> <20221126144648.73162-1-epirat07@gmail.com> <20221126144648.73162-8-epirat07@gmail.com> From: James Almer In-Reply-To: <20221126144648.73162-8-epirat07@gmail.com> Subject: Re: [FFmpeg-devel] [PATCH v2 07/31] avutil: use av_dict_iterate X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: 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-request@ffmpeg.org with subject "unsubscribe".