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 E051B44265 for ; Mon, 5 Dec 2022 06:23:22 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5CA3168BC8C; Mon, 5 Dec 2022 08:23:19 +0200 (EET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (unknown [40.92.74.28]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B0EDA68BBF0 for ; Mon, 5 Dec 2022 08:23:12 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kh433dXn3tUiDSQbK2TLLbf9dEt97AH5xUqWXu9teZlMZYp3AoRX8SQZOtmytCr29bwyizPvuKrBChBIC+gBro/N51wMr6aKVlAe+H4aSfhdEP4y8SQuuZrMxYT/P9fofsKJzSs6Af3rgHVCUiw80wImcHP1IjOKy+SYaEC9ESiqAnTQ4aTcrj9iUhUD/N21UVSgaGhTHfcLZAVf93Nv8WcZnR0ZxPaGYLXRFc9U0eRc1+cB69Cu6Yr2VmNeymtMKvOJuAt3nYPLUE0Kgg8ay5XY3BadGNGQaQjw1vrWJkRUDQwopr0r7OchKpweUcxvGsNvMyekwDkEYVGmk1J2Ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=+tlZ2xZbFmCTdhwc0rXEW4J1wAQtGxhlMZ8r7TFMPog=; b=jKRrpf7BykqzqYTEHVE89N/Si+JXMq1SDvQdVZWqTWSFAemI8ofeyW56RYEWd9JSFXNMXc1vKTVEnWpMORuTFikLF7S1/LhWXqLm8HNlNlfGUk38YjR+lBr/dz41XMSpIoNpjs1StksqQSAnfVlvJdec4qtbS3qs6+NtFNxGP+gf+gV+4BKVvCLjMizunvbp5bj/tEzxJ7vyeaxRE0nHAVV2gkgWbPmYOfVZ22y274Q0iPeIq0D2YFq3jM4DKlCAik2qAZ2AZqHElH6R4IusTW6244BwXeogawhKI35flz3Ogyz5o/oZLyLstSTP+JqLKRX8ZQKGiEbcTD5J8Ywt5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=+tlZ2xZbFmCTdhwc0rXEW4J1wAQtGxhlMZ8r7TFMPog=; b=ICfIlE+oeift7bqdntAvkJNWjvEUJKyFgftCLvN2HQ1fHvibkdorQiZIT+x5gCVnw1Ba/ea4aGx2pMTp+D5OlvkhmrEcLqi4cN/Ck2lP+wATCITdiAYSaWGIoZiVt0p7v0haGjkcJrnfDgCIQm4uVeumdhoR2MFwffk8BqvlBbU/kzKhLp172FkwRudZJXCSGvKoHvHYtdOCsoMSZBKHN49WJCmmC61MrUhDg3O9XBS3w9/GUgytVlaSMGwqGXVFTVfCFoA1VLtmsM8vioygAaOey1XFRm1/LtmV2zOUYjgyvt0MqKm0vbGt4/ey4fVV9m1z8rTFPuiLSVg9GR35wg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by PR3P250MB0082.EURP250.PROD.OUTLOOK.COM (2603:10a6:102:171::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.8; Mon, 5 Dec 2022 06:23:11 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::da14:61e3:630a:70b5%6]) with mapi id 15.20.5880.010; Mon, 5 Dec 2022 06:23:11 +0000 Message-ID: Date: Mon, 5 Dec 2022 07:23:29 +0100 To: FFmpeg development discussions and patches References: Content-Language: en-US From: Andreas Rheinhardt In-Reply-To: X-TMN: [97OjRIV6rTG9ox1Rr77znf3iIht8t362] X-ClientProxiedBy: ZR0P278CA0156.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <1831f819-72ba-9269-5c56-2b53fc38e2ff@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|PR3P250MB0082:EE_ X-MS-Office365-Filtering-Correlation-Id: 9a3e77ea-db14-445b-8e84-08dad6892dba X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: beMU0ng4x2jyh8zfH6OzyeMb0Xmm5O6yHTzVvZm1qWDfzWXuBIWscOjHi0WHS+vX6N39rSFWlqxMTiVdd7RYL/B3WGGLN1mIO3/EebSM/A7CZeZmMK6MRdPpNVUR3Z0o0WSZZGQMHnHDYD+ULQ1lc+gXQ99AL7+Jv7CzjZITpcyh1WEcVlv9EOQDbIDW73qK+rrW0Ql2GhYkQWYWwxhGkwueSzYk3cRwq4J1jIpzzquEh8S9AwTwBM0oLuDYhsunZWdOIxOcRckEHEeZFYsSS7i1TNXm1dK0DZNT9i10ggolf/aWG2Hi4mbu7AZmZPygTSFHtHDkNwyqaijzgICCb51AZYhFzx2l7OdmMfYMTwx7z1fml8g9/QwUkCaqFOfOywvgzLI4hJ5GUsSzfzdxVjjW7Si6NZKxgiW0C9LV2+UJht8QLfza5esFjzZxi2xTvA69C/IY2Zk7VLKDJh4AHiAIag8OBaInksDzqcZCNqxJaRR24Xxkzzl6PZvpSAl2VHVf1wvaLMuWdgeYl1mv/Ohi8ZSUsi/E0mdgGFfzchqrA9PBs0HZVZd7cAdCrjaaRxGwvNmOuogOYW9nehN7aZs8kulCnXcb/RkAr+4DMuPfJEZ+wS8Mw8NJOvpDFtyxGAX1VQEbnRznDv+Urlr3Rw== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?bEFtMW9iYTBKaGEvK2xvbVhPeHVoazMrcmRDYUJNNm1zTHBnTHRpNE5KRTc2?= =?utf-8?B?YVV1eTdqVlNVQUo3WnVmeXlTQ29CQ2ZaQ0wyYjhxdUNVYUhaazJOc0xNbFhV?= =?utf-8?B?K2c0SnVlWG5FTzE3U01xT1RSUkFxQWlEMExFNm1waXhyNXp3S0JDZXNjKzNq?= =?utf-8?B?ZXo0TzJibGJudlFMcnlQYVk0REsySU1vc3dWTWxCdE1mdHFEbW1WU3BFSWNm?= =?utf-8?B?VnlRUndtNCtPU25XQUdQREdob3YrVGhCdFhqNWY2aTdmQWhHNXBuOXNFVXpI?= =?utf-8?B?RHJpYTdYOVM0L2NLWGpyWHRXaC80akxsR2pKYjZ6YmZOWHdDbE40bUNKYlp1?= =?utf-8?B?MTFHbjVFd2R3WCtyNjNqUlVDV3p4amYzQjhDN3lKcU54L3NSYVV0Y3F5aEFi?= =?utf-8?B?MGY4akN1MVYxRTBtZitVTzE3aFRmOFBOVXZPU0k3cFlvelBCSVkzaDNidU5F?= =?utf-8?B?UUZONTh5Sk5KcVRtTVJ3cmJmeWIwMVM5TW9pZVE5UU5jTi9vYUZBTG1JWlVW?= =?utf-8?B?cTNIMEdPQkhxeWFDVnN3clRCeGY0NDdTNDhoZkpwUXBzNGdVd1FqZGpYeW1t?= =?utf-8?B?a29DZ0k5RFpyYmFGa3hJSFRpVmd2K08yVTV5bjA0OUorWnJQdGVkWDR2dVJQ?= =?utf-8?B?OVRpU3FQclFKQ2dBQXNYK3cwaG5oNzBwM3RVeG9xZDB6VC8wTEtNRTFZU2JI?= =?utf-8?B?aU4rbnpRbDVNMXRvUUlqZmpXZTJIMENCYTNmQ0drbU1uT0ViOGJGMTZLRHpn?= =?utf-8?B?ajkwOXFERGZ6YjNUS2daOCtOVkhtRDFibmZUNkU4aDRtaUgyWVpDU0JDNEMz?= =?utf-8?B?ckxUZGxmYThCREZnczUrVTRoSHltc09yMVRkWTFVZ3JsdGFLQWc2SVMrckhk?= =?utf-8?B?a3RPSjc3UnJ5ZFpReHExUjM0bWxpZTVIZXVwVTFwcmpzWHVUSVoyVkU3RVMy?= =?utf-8?B?aUJQUTNEdU9qYmU1dFBVT29SbHA4cU9qSE9jWG1pcXdNY2EzSGVDYjlZRXh2?= =?utf-8?B?SEc1bGNnRVRnR2tLVFIvY0szdVpWbkNwNlJmVUNHdEpnWEluakdIOFJOUVd6?= =?utf-8?B?VDZ4SG9zRS91MW1zY3UrWS94a2ZzRVZrclQyajgxekRWWmFzSGNscjgxVlJy?= =?utf-8?B?Y0xrc05SanhHcFlFTE5KTFY1RngwNGJFeENwZjgxYTN0SmRmOCtjKzZmTXdz?= =?utf-8?B?UEVOMk51SWNVUEVzWklSYU9ZUWFSSzJSWElWeUlHRkFSVG9LbnE5V2hKSWUy?= =?utf-8?B?dGl3S0JmT0lwN3YwckU5cUNTUi9PK0RIYlY1RFJ5aiswaEkydVVnZlRTanVP?= =?utf-8?B?SDdNSUd2ZXZFejU5WTkwY0pwdlZWbTJibnF2VENIeXNrb1QxVlE3cFQ5UmtH?= =?utf-8?B?QUtoV1Z3NWdvajd0dldRRllkSXhiSTFmd2J2VjcxMTNJRDAvRkVUQ3F6K1lI?= =?utf-8?B?SDVVdTNrblk0VEp4TEN3QWhrQW4vOGJIRW9RbUJ6OUVlUXdqbWNWZHljeXFo?= =?utf-8?B?UEJGWmc0c0pUUWdBYTR6aUhXeFZxcytNdnJsak5uem11b3NnOUVKbUgzRUs2?= =?utf-8?B?OHRXQjdsajN2QXhZYmRYOW9jaUowVkY5ZTd5bHd3dTFlc2NCZy91TU5rOEhZ?= =?utf-8?B?NmF5Rm5HK091clpBYnRyUzNtYStGYXRRd0RuRmV3SWt5a1VzdzZBeS92VjZY?= =?utf-8?B?ZHpxU29vOUtMYjFhWVl5SkhUUnFrTFZXOXZxWTZLMHpwVmxzYXVnNzlJc2wv?= =?utf-8?Q?FQHT4UrMNA5luBQrMo=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a3e77ea-db14-445b-8e84-08dad6892dba X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Dec 2022 06:23:11.1324 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3P250MB0082 Subject: Re: [FFmpeg-devel] [PATCH] avutil/tests/dict: Explicitly test 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-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Andreas Rheinhardt: > This commit tests it in a way that automatically checks > that using av_dict_iterate() is equivalent to using > av_dict_get() with key "" and AV_DICT_IGNORE_SUFFIX. > > Signed-off-by: Andreas Rheinhardt > --- > libavutil/tests/dict.c | 30 +++++++++++++++++++++++++----- > 1 file changed, 25 insertions(+), 5 deletions(-) > > diff --git a/libavutil/tests/dict.c b/libavutil/tests/dict.c > index 91567289c2..bececefb31 100644 > --- a/libavutil/tests/dict.c > +++ b/libavutil/tests/dict.c > @@ -20,10 +20,30 @@ > > #include "libavutil/dict.c" > > +static const AVDictionaryEntry *dict_iterate(const AVDictionary *m, > + const AVDictionaryEntry *prev) > +{ > + const AVDictionaryEntry *dict_get = av_dict_get(m, "", prev, AV_DICT_IGNORE_SUFFIX); > + const AVDictionaryEntry *dict_iterate = av_dict_iterate(m, prev); > + > + if (dict_get != dict_iterate) { > +#define GET(entry, mem) ((entry) ? (entry)->mem : "N/A") > + printf("Iterating with av_dict_iterate() yields a different result " > + "than iterating with av_dict_get() and AV_DICT_IGNORE_SUFFIX " > + "(prev: %p, key %s; av_dict_iterate() %p, key %s, value %s; " > + "av_dict_get() %p, key %s, value %s)\n", > + prev, GET(prev, key), > + dict_iterate, GET(dict_iterate, key), GET(dict_iterate, value), > + dict_get, GET(dict_get, key), GET(dict_get, value)); > +#undef GET > + } > + return dict_iterate; > +} > + > static void print_dict(const AVDictionary *m) > { > - AVDictionaryEntry *t = NULL; > - while ((t = av_dict_get(m, "", t, AV_DICT_IGNORE_SUFFIX))) > + const AVDictionaryEntry *t = NULL; > + while ((t = dict_iterate(m, t))) > printf("%s %s ", t->key, t->value); > printf("\n"); > } > @@ -94,7 +114,7 @@ int main(void) > if (av_dict_get(dict, NULL, NULL, 0)) > printf("av_dict_get() does not correctly handle NULL key.\n"); > e = NULL; > - while ((e = av_dict_get(dict, "", e, AV_DICT_IGNORE_SUFFIX))) > + while ((e = dict_iterate(dict, e))) > printf("%s %s\n", e->key, e->value); > av_dict_free(&dict); > > @@ -106,7 +126,7 @@ int main(void) > printf("av_dict_set does not correctly handle NULL key\n"); > > e = NULL; > - while ((e = av_dict_get(dict, "", e, AV_DICT_IGNORE_SUFFIX))) > + while ((e = dict_iterate(dict, e))) > printf("'%s' '%s'\n", e->key, e->value); > av_dict_free(&dict); > > @@ -122,7 +142,7 @@ int main(void) > av_dict_set_int(&dict, "12", 1, 0); > av_dict_set_int(&dict, "12", 2, AV_DICT_APPEND); > e = NULL; > - while ((e = av_dict_get(dict, "", e, AV_DICT_IGNORE_SUFFIX))) > + while ((e = dict_iterate(dict, e))) > printf("%s %s\n", e->key, e->value); > av_dict_free(&dict); > Will apply this patch as well as the remaining one of Marvin's patches (the one from #7: "avutil: use av_dict_iterate") tonight unless there are objections. - Andreas _______________________________________________ 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".