From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from CAN01-YT3-obe.outbound.protection.outlook.com (mail-yt3can01on2045.outbound.protection.outlook.com [40.107.115.45]) by sourceware.org (Postfix) with ESMTPS id 79CFD3858C50 for ; Tue, 12 Sep 2023 14:38:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 79CFD3858C50 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=efficios.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ACSJBo6mNqcsDbmCyrpyzeqt90EEl5v3OsKO4d8jscHjIwHwdPyIG3L2SHl7oOJkV1AWrhf8d6Tz6U3EPiuR2u8PxD2mmZL6x/Isz9vq2fmBBP44qdCIpn9PrvPW94/QlDKSYu5vccTFQichvZb/ZpmKo2kU7WbW7po6pwxTp26+JkDlCQlfFKCWlGpLq4egrEceJ1WOCghVJhhggS+Rq/1D6Q9pmhzVmdxmleI3cW9YSznOobtds3amhtU+bb8jtnli97/ho2BSjAKGfk3etbSctKJIt4ZB+CG/yzgxxqf7N1cBfcrF5RDIW5O8rsyrM/dn33Vc+9tnWfzBPg3IKw== 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=gyTA3ogCc27ah4vno2b9nAfT9XvkqstBXngRIXncB3E=; b=OG3dFzx2YXcsOF8wlgl1aSVOrvx1dZr3QSU0UPPBtfk4VICETATuCB7SH5aHLYF4vMmB8Z9biaW5gATTpAN7w1XX5VPQ66UE/duzaFEkBYf3xtDRAuqN3tmZkwT3/jypoLuLc1mv57FqFM20KXpECwMrigssA1/s/BiiYpaHAWQdbgikn4dd6PGrDPFOE+9mLkz55eg+76Nq2M5i7Hbj2tw8LSoZRNqK+7MPKYJ0vi1uGrW1DHGZ2EsSgssk2rGbtXWs/NUXbRGqJhCXkGgieqN2kqd2qiukHWxvIcACDXQD8q4u/zB7qZdEKt7UVkvqNMzSzXpB3f+H5J9q+KTufQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=efficios.com; dmarc=pass action=none header.from=efficios.com; dkim=pass header.d=efficios.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=efficios.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=gyTA3ogCc27ah4vno2b9nAfT9XvkqstBXngRIXncB3E=; b=MAej7z8IygBD33K6MDPDnMJvmKw0r45ZVVSP7w8iUKfJmrF+OefGVQtrHHDHAm1mQQAW9pBNKZnINI8dWWD66PKfvruRn894av8mOdtfzaOEZ8TeLYLArL1VdgmyDOarMO8s1eGZnYrez3FruFHHDTpMC0vjKJJjwyAfiQy2iLPNL1dsgfWEEINS2MjPc/7Yds1xA20/bn3Jfh3FCKx1dVZI3z6YCGB3nuZ0Ipz8zXPmnhoOKxIHpxxETnElLyqqPl5PW0MK+gzu3ksEjmEBp0B34ZyLYn/Oav/N4Jjx5++LtjDNcb/GBKX4qdcdVM7abj2hJDaIyRmQK9t8lHTKeg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=efficios.com; Received: from YT1PR01MB2828.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:a::23) by YQXPR01MB5377.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:40::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6768.38; Tue, 12 Sep 2023 14:38:29 +0000 Received: from YT1PR01MB2828.CANPRD01.PROD.OUTLOOK.COM ([fe80::a015:84e9:f0da:66ec]) by YT1PR01MB2828.CANPRD01.PROD.OUTLOOK.COM ([fe80::a015:84e9:f0da:66ec%4]) with mapi id 15.20.6768.036; Tue, 12 Sep 2023 14:38:28 +0000 Message-ID: <608cf6cd-ab5c-46a4-b30e-1f3f8da754ed@efficios.com> Date: Tue, 12 Sep 2023 10:38:26 -0400 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 04/21] gdb: make interp_lookup a method of struct ui To: Andrew Burgess , Simon Marchi via Gdb-patches References: <20230908190227.96319-1-simon.marchi@efficios.com> <20230908190227.96319-5-simon.marchi@efficios.com> <87ledbkb19.fsf@redhat.com> Content-Language: fr From: Simon Marchi In-Reply-To: <87ledbkb19.fsf@redhat.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: YQZPR01CA0014.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c01:85::27) To YT1PR01MB2828.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:a::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: YT1PR01MB2828:EE_|YQXPR01MB5377:EE_ X-MS-Office365-Filtering-Correlation-Id: 112c8b34-d130-4efd-625b-08dbb39dedda X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6oGjs01wYRWGR5sO+0wS9wZ7rbAVnMYe8RGspYOiCgzHqCYmFY367HeAU3tcgFa00sfU3eKv/2F5T/7k7Ca6s7kALZbSXg4MSYqs6XScZx2UGwXgO3nUnUC4kaj+KDfRJTKz0LRRXUHYYnj/dmb0HEjPcEJCUfJfNwGYJEMFLxBqVzYIxKPcnsl8D/OWA40nYFh1/g1GpsdAAC5GgTmF6LgGH6pieRzQNA426/dJNXfk/IQ9XC7/DMbnpae1h5u/HshQ5S0taCmEiqegI1meuY95Nrlbk2GxucSSrKjxVRDZnYwof1PQH/f4GOFUzbdQUei4xjVdeEDUIKnFaQnkhAXoyeA1Ud3iRWiqMVHQI/PcyR1EOzI4VTguFV6R8grQoOcL+R25LNIo5hh5Hgo3k46hqILRKf7JLCTAt7e1NTdsrm2GhHmpBuSiq2SYaI/JUYXmSHk+kRE33xzgIdn+6GVg32+V3ZmRGblC9EwnHBEETw+PmkOi4s7uVkDGz74yoSZNgh5hTeC/lF+Od6iaImJTsL51OHZgHCCsSiCePg6C8Z+TZ++GoAY7ccFmh/Aar3NeqYCH+daU1tzeTeFNtll0eIfIR+jEr9nxoXKGd+I0hajhxtEIUGetZ+Igb3YJ4c6r29AU9949mZC0Uyc5Qw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:YT1PR01MB2828.CANPRD01.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(39830400003)(346002)(396003)(366004)(376002)(136003)(451199024)(1800799009)(186009)(6506007)(6486002)(6512007)(2906002)(478600001)(26005)(2616005)(44832011)(66476007)(66946007)(66556008)(316002)(5660300002)(110136005)(8936002)(41300700001)(8676002)(31696002)(36756003)(38100700002)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Y0lkMU1WcklNZEkwNGw4dWZrSnFqYXp4VVkyMWpaQ1UwbTI1UFkrSCsxQTJ6?= =?utf-8?B?RFpMU2Z6WjEzRlU0MUtxMXJ2OUZGT3VPSVc1UGwyTHlIWTdQVDhXalBMcXdP?= =?utf-8?B?VlBESndoR3V3cXhObXVXNVI4VFNrUG5UVmFiVDhmV01OWWwxTk1YQXZIcTdo?= =?utf-8?B?YkYwQUhJREVFYTZ2RVpWOW1pZzExeTFYL0NDWExSZk90SUZsVmkycjhqVVJn?= =?utf-8?B?dEZHN0dmWHNudHRDTzZZbzBTTXYzY01Vdk1iSUZpeUpBbGE2OVk1T2w5d0h1?= =?utf-8?B?UHI5V09WOGpadmpvalpTKzE5S3VCcXNWb09ydkJSRGxRQ05kODFDL2ExNTVv?= =?utf-8?B?VGJDejZnOWM1VGU5S3hLdzVyODBVRlh6YjdnbFBKYjVJa3F5aExKQXdHTEJR?= =?utf-8?B?bDh4UFhVcXlmZitPS054UFNvdmJ0N21sNE9oN0dLcDIzbzRpQU5ZSmxzWW8z?= =?utf-8?B?Z0htdVMzQ2plQ2hEK2p0OHEySjdtLzQvTGpwTkFWM09ISjVPZmp0VEhFVDcr?= =?utf-8?B?dUI3T3h3NnBVNnFHMzYzdDJSM25RbnBBNXRkK01NbTRWNHorZk5mNTB2bG5E?= =?utf-8?B?QmtNNnRVZVJZb1k3TTQzdG9ZUjY3VjFiN0tseElmNHNHVVhYNDNUSmJrQ0Jq?= =?utf-8?B?ejNWRjZ3V1gyTnh6VTlaRXlROWZEOWRFNmlvQlBXazRWSmQ4Rkp1VDkvOEZn?= =?utf-8?B?OHRZcDFtelZvT1NWc1A4Q0JBdzRYUTJBWkJZbDExakp3NzN0SXhZZDU2ZzJU?= =?utf-8?B?dXFOV1ZSYnhkMDdLcFhCM0JTdVJmSzJHb3RtTkV3akZwWElOd3drR01rS0hX?= =?utf-8?B?aXFTQW9ORW1CTkF6UlMwZ2dFUjBGdHBEUDhYQlBlRmRBeWswTHJoZVE3RUdw?= =?utf-8?B?RXRRWEc3c0t2L0NWdlp1TDNyb0w4dEc2NU1Cbk1ycmtaUVdQUVc5M2QwVEhm?= =?utf-8?B?WmQzc1Bram9FMFhtQlFjSWUzcXphZ0IwNHcrMWcvcno0NExjT0tadzZLZUpr?= =?utf-8?B?Vm9MNFJwaVMxV0d5QWhEci96UzluVWE4QnRhamtuSjJWbGZHeDBHalR4N1E1?= =?utf-8?B?aS9LVlFWRmRibXBxYVRLWGJOSjQ1YTJIU2tXY3ZCenRtQmZCVEhwcmxvTHN2?= =?utf-8?B?WldZTzRLT05DRUhYRFlGNldBK0tRNkdvSnVpeW4xZEFUc1V6MWlscU5FTVYw?= =?utf-8?B?RVdTeXpCNVlUNitQUktUMFJ5a09sczBmMEI0WDdJUWhESWZtZ3FnMFBRNzJE?= =?utf-8?B?cnhhbWg4SVFIZEhFUXgxMVlKRUNudk5NWVNqNmlnU2NxN1FGbG9OcUo3L2xD?= =?utf-8?B?S3NkZkNxWjEvN3RJVFEzL0FZbDRTaHozTjdLNWZXWTZMMU1DOWpJUlBXTk1n?= =?utf-8?B?YW1BL1RDV2UzT2NLWUtuKzZDTzlKSFNIclJSaFdtV0x4bnRMS2FkQjV0TU1G?= =?utf-8?B?akFzTkFGNmtSS0hYczFmdmFEekg0cDYwNUpaTnI0NGQ5ZEVCSWs4QjMwNDFG?= =?utf-8?B?UnZ3ME1SSTVBckZ4QjJRRzNTdk1oZmZoV1RiUkg0L0RCMEhFR3Jvc0JoMzVR?= =?utf-8?B?cHR5dmhTNHdIdzhmNnUzVXN6M0g2bnN1U0ZSZW43emxOT2c3cmRHdXdJYjIz?= =?utf-8?B?eHhGUUlXdUpRczExbkkrZEU3Qk9qd3dram5pZDRmMmRnQkJpN1dndlVqTVhi?= =?utf-8?B?UXptYnZmNklKc3NId3ltcUYwWEJ0R1RucEVsTlpSc1B0azlZUU0xZHNEUHd0?= =?utf-8?B?b1BHVmtjVStxN082SlUzNXV4MjBweE1sQkdHKzdMQjk4QXp6YlZIcjU4RFlk?= =?utf-8?B?R3luVlJ4NGs4RTlUZnE4R2YzWU5lS3BkMithRTVUL0NpTUNDQVYwWWJIS0lJ?= =?utf-8?B?d3hMRHQ3SXRIZ0xjcVpQTTRCY0FEZVNrby9FRytxcXgyclFZb1lremxkbU1D?= =?utf-8?B?Sm5YczM2VkZCSTFNbGRDK25RcUMybmM0YXVMRFdOSGh6VlVPYzZaNDJXN0dR?= =?utf-8?B?SnduYktnUFIvMzdOTjE0Zk9Tbml5RGdWSnhTWUxybElsK09BTnZTWWdRUXJV?= =?utf-8?B?My9XUGwvbkJvMCtUWURiVlA3N3M1YmpnL0IyOHRaTXd5bUJXR0UyTHRWL0hW?= =?utf-8?Q?W9N0VJCN6wzUAev3yv2U82cd1?= X-OriginatorOrg: efficios.com X-MS-Exchange-CrossTenant-Network-Message-Id: 112c8b34-d130-4efd-625b-08dbb39dedda X-MS-Exchange-CrossTenant-AuthSource: YT1PR01MB2828.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2023 14:38:28.9095 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4f278736-4ab6-415c-957e-1f55336bd31e X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: vV+8YWlMwyd1ZKAWzsY8VJXc8phJHNsKV5wtEDHxfArOly8+LzTeCmTi/N2tCUbWDhYTpInW6Gms2q8Rf16srw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YQXPR01MB5377 X-Spam-Status: No, score=-3038.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: >> diff --git a/gdb/python/python.c b/gdb/python/python.c >> index 6a978d632e9a..a1aaa29d0ce5 100644 >> --- a/gdb/python/python.c >> +++ b/gdb/python/python.c >> @@ -683,7 +683,7 @@ execute_gdb_command (PyObject *self, PyObject *args, PyObject *kw) >> >> /* Use the console interpreter uiout to have the same print format >> for console or MI. */ >> - interp = interp_lookup (current_ui, "console"); >> + interp = current_ui->lookup_interp ("console"); > > Might as well take this opportunity to replace "console" with > INTERP_CONSOLE which is what we use everywhere else. Good find, I'll add a preparatory patch that fixes it first. > >> current_uiout = interp->interp_ui_out (); >> >> if (to_string) >> diff --git a/gdb/ui.c b/gdb/ui.c >> index 624187ac73c3..a7b81c077e9a 100644 >> --- a/gdb/ui.c >> +++ b/gdb/ui.c >> @@ -169,7 +169,30 @@ ui::add_interp (interp *interp) >> this->interp_list.push_back (*interp); >> } >> >> -/* See top.h. */ >> +/* See interps.h. */ >> + >> +interp * >> +ui::lookup_interp (const char *name) >> +{ >> + if (name == nullptr || strlen (name) == 0) >> + return nullptr; >> + >> + /* Only create each interpreter once per UI. */ >> + interp *interp = this->lookup_existing_interp (name); >> + if (interp != nullptr) >> + return interp; >> + >> + const interp_factory *factory = find_interp_factory (name); >> + if (factory == nullptr) >> + return nullptr; >> + >> + interp = factory->func (factory->name); >> + this->add_interp (interp); >> + >> + return interp; >> +} > > Rather than exposing the interpreter factor stuff outside of interp.c, I > think a better approach would be either move ui::lookup_interp into > interp.c -- personally, I'm happy to see different parts of an object in > different .c files when that makes sense. I don't know, I really like having declarations and definitions in matching .h and .c files. > But if you prefer all to keep ui implementation in ui.c, rather than > calling find_interp_factory and then factory->func, we could just have a > new function `create_interp (name)` which creates an interpreter, or > returns nullptr, then we can write: > > interp = create_interp (name); > if (interp != nullptr) > this->add_interp (interp); > return interp; > > And all the factory stuff can remain private to interp.c. Yes, that makes sense, I'll do that. Simon