From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id kQM5Ff8Kr2k8hCAAWB0awg (envelope-from ) for ; Mon, 09 Mar 2026 14:01:35 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=MBl5hQ0l; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=MBl5hQ0l; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 4978B1E0E1; Mon, 09 Mar 2026 14:01:35 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id F10C41E089 for ; Mon, 09 Mar 2026 14:01:33 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 7D4CB4BA23CD for ; Mon, 9 Mar 2026 18:01:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7D4CB4BA23CD Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=MBl5hQ0l; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=MBl5hQ0l Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013019.outbound.protection.outlook.com [40.107.162.19]) by sourceware.org (Postfix) with ESMTPS id C79A04BA23D1 for ; Mon, 9 Mar 2026 17:58:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C79A04BA23D1 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C79A04BA23D1 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.162.19 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1773079125; cv=pass; b=HcDyeBjZB4OERfKD3nCYefrKRj1smVcFH4Lf/M3IGSrf8xsOhqgCifb4lI0RJtNiU628I/8cjXfX1/kUrQ8adWdpsVUoGOJjYgh9TtZfdI2b0sotnzWARsZ2AFnR9orGKkck00RujH5rCh3BM7jlcfFCG1EnTKpeYb6ZKSfaZ+U= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1773079125; c=relaxed/simple; bh=5/iJ9qzOmYrWugshF9mLjazbBJL59PqJHrtBk0FPQU4=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=eEmLbQoQbVWmpYszUI6rZ22u0sPljOFgGQ8sxfQ4MSNqs60rCVeewiKvZeOWUwHmLIPFXrawLDBer5n3j4G6Kt9qWz2/7vCN9YoDJM4+syjM40A6Qn6gBZAFXjUYY947jGl0r0jK3lkXG/VYvRl3DtwUlsrcgYAj3lZ8aMJNKXk= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C79A04BA23D1 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=Q44tciNbbV8dSh6j5ajb6p3l+weZ0UxTpLWp4p4ok71KtUVZ9n9KEEpYIyczcduhQLAPwpXPhdbMzqjpRak1EH8gSIsIhKZnwe779tTCSE9G1Xf7SgQr2q4PnwRDRFLCHJ7IFRflppOZjjGaycr8QnNEpwrIl5yuLAz4sGTdbbefe6x8PuWWrcryuJ+9zqSB+IJsnpXFhV2UO9+Ghf7HTAKS1QAeDmXuaa0oOmGPDwrZVhym5zVXyM3LS2m954IFQyaglOT7zfdxJ57vy6Wc9Rh7eJ9ARiY3xBy+Hvu6hxQI/wI9UrGP/g//xBaBnxcEAvV8hbQKJxPCLr7f4umNsg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=dvP/lt5ZxwsvQCsq/g6rbPUYerAnEPJ7mGINx/6M6RU=; b=Qqe2ZWM1iraMcNxGOQEeopWEVTGSgB5m4dEfbesQ+2IMJTI+YypYih2ODWeqlKOtGjAEravbBrn8zzj5obrnWR9fTE3fqDSdgWcT4P+FhBbnK1wa18TRrIPoeWbgL3zlyQ0MHXmE7SIbmMSuXaCDfActOG0Q17MXEGT6G/l3V9kfzgIJG4VWErV21bgnsUltvd1Vr0w/gndDOuXCMTMRK/Kme3tUmLiFEd12pWgWXLgEgpoVqoSfUxgFZN/74RNpGyu2sDZ/Ktt1eS7aS1TmmrBtNr9aDHs8amzXMQqXzU5UiVTwAu5heIJW4ot0+RfLFijMH0sVhk9ook46l1ob3Q== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 4.158.2.129) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=arm.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dvP/lt5ZxwsvQCsq/g6rbPUYerAnEPJ7mGINx/6M6RU=; b=MBl5hQ0ljUj2xMniD4mhyLqXRj8Y3X0zxwXg0RHN39Oq8u6jWWENQOobP3wygLRsO81l5lOQ8DGWmbYywsBtNfGm0pln8jVs6MKGjk38DXLN47hKM3Lh+LwTxtvcEZ0kFd5vwUqLNAA4jVkHEi4YKHfW+/X4fM5NOY9h4D3mJ8M= Received: from DU7P190CA0001.EURP190.PROD.OUTLOOK.COM (2603:10a6:10:550::27) by DB9PR08MB9705.eurprd08.prod.outlook.com (2603:10a6:10:45c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.23; Mon, 9 Mar 2026 17:58:35 +0000 Received: from DU2PEPF00028CFF.eurprd03.prod.outlook.com (2603:10a6:10:550:cafe::e3) by DU7P190CA0001.outlook.office365.com (2603:10a6:10:550::27) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.24 via Frontend Transport; Mon, 9 Mar 2026 17:58:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 4.158.2.129) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=arm.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 4.158.2.129 as permitted sender) receiver=protection.outlook.com; client-ip=4.158.2.129; helo=outbound-uk1.az.dlp.m.darktrace.com; pr=C Received: from outbound-uk1.az.dlp.m.darktrace.com (4.158.2.129) by DU2PEPF00028CFF.mail.protection.outlook.com (10.167.242.183) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Mon, 9 Mar 2026 17:58:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cjRXpBaopBYA2APMuCDVxx86uHmhYoZEZczd2plg3Pyl+QqSLTf5HXY+uwZWAzn4Q3KoN1Zej+fxHTipN2ucOboRODNRWqwNbNkfIsCYaJ0ZWEFyL2kpw9lvQRaiKBY7YvcT3fRD45pDYLcyqcCE+iB13dmc3KfzeGDGo7VFqCdueMQ1KpBnr9xhT+3Z18LXQ43fqt0nzVZ1mmpWFFY3WndEDpx3C574Esnr57vAyneCIY19KMf34xJui41M+mwZLymTke82W+033WLZRIj9jTUfA+DJEhkY/kXqUjEJ4uTYP+wi7t/btCHFejJS/PgvscB8MrCBQVFhOaRBbd6wMw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=dvP/lt5ZxwsvQCsq/g6rbPUYerAnEPJ7mGINx/6M6RU=; b=SK8O1yLXMxcTGj5LEYT8BbGegSn4ik69bz/Cg09C1K12glO3Z0hTc7PgYIA+vbCAFO1UhCbJcjNZiz1wGf6RhW6VswfLKECqKstGGPzeKlDha0TV7Xn4J91X+DEYDSl29VurrUdSI91Ftle48nVpVXAOlKzVMH/WOXZehMF3epiQPr6pjvfdoB/tLErib5uAYMWpM4TekZpWmxVm+aB1uIUrWcObXRBeA7tSWRz/KYnolxVEhcpwGCfK6cLI3qE/xGD/0sgda2O6fZq0o76yFzAjN0oDJVrWFjGBCYLyzualWuErt1jFKzR+3F7njEnsTtb1bdmd8wxDSaCpQALCzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 172.205.89.229) smtp.rcpttodomain=sourceware.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=arm.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dvP/lt5ZxwsvQCsq/g6rbPUYerAnEPJ7mGINx/6M6RU=; b=MBl5hQ0ljUj2xMniD4mhyLqXRj8Y3X0zxwXg0RHN39Oq8u6jWWENQOobP3wygLRsO81l5lOQ8DGWmbYywsBtNfGm0pln8jVs6MKGjk38DXLN47hKM3Lh+LwTxtvcEZ0kFd5vwUqLNAA4jVkHEi4YKHfW+/X4fM5NOY9h4D3mJ8M= Received: from DB8PR04CA0008.eurprd04.prod.outlook.com (2603:10a6:10:110::18) by AS8PR08MB8372.eurprd08.prod.outlook.com (2603:10a6:20b:569::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.20; Mon, 9 Mar 2026 17:57:30 +0000 Received: from DB5PEPF00014B9D.eurprd02.prod.outlook.com (2603:10a6:10:110:cafe::1f) by DB8PR04CA0008.outlook.office365.com (2603:10a6:10:110::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.20 via Frontend Transport; Mon, 9 Mar 2026 17:57:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 172.205.89.229) smtp.mailfrom=arm.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 172.205.89.229 as permitted sender) receiver=protection.outlook.com; client-ip=172.205.89.229; helo=nebula.arm.com; pr=C Received: from nebula.arm.com (172.205.89.229) by DB5PEPF00014B9D.mail.protection.outlook.com (10.167.8.164) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.18 via Frontend Transport; Mon, 9 Mar 2026 17:57:30 +0000 Received: from AZ-NEU-EX04.Arm.com (10.240.25.138) by AZ-NEU-EX04.Arm.com (10.240.25.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.29; Mon, 9 Mar 2026 17:57:29 +0000 Received: from PF4S4363.arm.com (10.57.58.75) by mail.arm.com (10.240.25.138) with Microsoft SMTP Server id 15.2.2562.29 via Frontend Transport; Mon, 9 Mar 2026 17:57:29 +0000 From: Matthieu Longo To: , Tom Tromey CC: Matthieu Longo Subject: [PATCH v3 6/7] gdb/python: add gdbpy_dict_wrapper:allocate_dict helper Date: Mon, 9 Mar 2026 17:56:23 +0000 Message-ID: <20260309175624.236491-7-matthieu.longo@arm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260309175624.236491-1-matthieu.longo@arm.com> References: <20260309175624.236491-1-matthieu.longo@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-EOPAttributedMessage: 1 X-MS-TrafficTypeDiagnostic: DB5PEPF00014B9D:EE_|AS8PR08MB8372:EE_|DU2PEPF00028CFF:EE_|DB9PR08MB9705:EE_ X-MS-Office365-Filtering-Correlation-Id: bd48e395-c872-403a-ae84-08de7e057bb3 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; ARA:13230040|1800799024|376014|36860700016|82310400026; X-Microsoft-Antispam-Message-Info-Original: Qbjfmn56AYjWzOejLIWtrVbe9mZrXuUwOoDS800RfEFsSZ4x88s6PiG8wX8slsXQX0eG4MXQpnva+JIvryB5mXl8aJhe1/0RJuQ7l4Oldib5ddFSiSP2kLlhJ0GN0Ua2SSoiXSfUQg9xBwPz0+eaJARqz5v0oosbtB2JC25/Rym8bvU4S5gsVoLsm+p2ym7nRVYBITdYs52ZpU9un3+9EWpxa9MOxdFmkSxCUQm7XOtqpO0J3lscqGTnMLomfncP22l8O3XELiznBTpWlTuTlOH8c0Odeh3FmNqNDHiaJC/52AFZSl22bm0pDhwqLneKGTcDB3pv9AbYaTnzVkbULbgRAMj5MRpwalC9CRfwJ6X4HJ/VCyTWqXYo1k3V7K1/hgiGA/VugOzB9TsPxHSXVRRqa0kRIw1x02pTvF08/l2kRTYfYRwYmJ+ja81C0coqS4dQ9147f53bxNidML/57NlEX7qje3LZMAY69j8GDmvJwrvbA3QTQj2qtpMNVsHZxG08h9lU9iWq4/RnNIzXx1zSXN3YGwveACivjr+MRpGSeL8h072jcrJ5xj1wdJfo1GrqZ1P+f1OtWzsoTfGqOuD1JIWtgUfLUepkkv/8ViVVG2y7+giF0458hSddQGgzKxXR2aI9EvpsEA61CvKwAvlASlfcj4WVu9lqEbGwRZroC9g/LoTS0b+zGXIp3cZ7DdjVm4efXYEz4OUgMlSnu/SI+8xJlf1hMVd3GYdUImOUjaWgh2YEFgGtIcWJWUfxbhZIK4KmgZEsoIblBQMLiQ== X-Forefront-Antispam-Report-Untrusted: CIP:172.205.89.229; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:nebula.arm.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(1800799024)(376014)(36860700016)(82310400026); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: D3Md//2F7zRgNV4dhnzsbY+OTJWGoCJddbgGRGbq3KuGkpwm7ThtkbvsXl7DpvrY8qFs6/Qky5QHYV6cNk4I9xroHSYbb68+vEeDZ8jShbPuSHc8eFqP/xulmophirI7vCHSKM8kCAs1qzGlJ0ASSLvuskFWxr5lbGtCrZdCC0Rj3Na4vGMgw+FaYUNg0slJ4RHD8t7BwoM8GndvtzjCgDKl3dEn2WDE7e0A52CZ6goUasD9FrXAcC1iU9qFde7cmezDb5sSp1eDAdkaRv+chkt0o5Bp9CRYkAw5HTZWflPKNpzFQjbv9uQMcFAEOf3D0YeXNRX3z4Hiyz1eT3G0Ww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8372 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DU2PEPF00028CFF.eurprd03.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: b0034301-a78e-4463-4cd9-08de7e05553f X-Microsoft-Antispam: BCL:0; ARA:13230040|82310400026|36860700016|35042699022|14060799003|1800799024|376014; X-Microsoft-Antispam-Message-Info: XLnKqOxEpXLa0FvXCa6BmXVBTm3JB1FlOXFdX1I763BLFvFVzTKT2z6c7oEPMLoy9HsB8ZTccyOPmWxqGw8gdwm2dm1IdhqGiJHok/+kOaWwzPej2d8qbvKWk6Qz/4nY1CCqIVktPqXETdyL2XgY90wGrS9+Z08rZZovwXdQJekswT+/M/A23deavtwdt/VvjOqv7VfBJWmBm8hVE0gx/SIO8XjGcpTbSOKhcNpjvTbdCf2+L3AGIbGOoVqn1AE7JzI92MeLL7U5fy4M+GSeeimsNxeiIaPKcm0ddc2sWYg1MAt1Z5NgSTh5w8r5bhLbVRm/4jvv6WZjrYWCuHQWCt2kpb/vCeKy/h6GB2hwsXCrpLLLQcvXZYg4axWPPzGvOOelDzqXsxOfho6eDjvDTIsvdzFMp2sj28XDAPyYc/J1+erDRlP764EPukbQTUvycs4+GjABXN6zVsEn0IOpXBkFpl0amEeof4r8ALOI6vKTXXNNrgYeBEv3Axb79JWuBEyrDWrnxhmxHHWEQhWNcrG2oFTFm8HpccD/ajfakBD7E76M4rEj28VRZnwJ7b+op3gAqYChlaxgtkgIrCF6HhxVHYr02P1RHQFGDWmfaT1TFWr8GbjI17ngJwJCgCH6Ecsg0G2LBfZoOHeriE/G9K8TszEkLIsm/hRqZ4H7fnyj9rvW1M/lqwo5MYwdoeKsWQb7LHGA1CCBxK8bykvf+BIHiDmLfACfcA04ZoIkhbWUqPNlGIyx+FEpKlGzorWDizr+LavFHaPu2AcplGWpoA== X-Forefront-Antispam-Report: CIP:4.158.2.129; CTRY:GB; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:outbound-uk1.az.dlp.m.darktrace.com; PTR:InfoDomainNonexistent; CAT:NONE; SFS:(13230040)(82310400026)(36860700016)(35042699022)(14060799003)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: /cAYQkG7mZUa2doKqFMhwHvOPq6AuVwF1hcAJdhm5gsuDMSWf+bFciLqbAD1GOPDfIImzCIoygjWu84ECwqqMgUbV04vmDcTxvnP85EVq0RocawasByDxLatUcS/+lqGkGPxX3bv0Fy3zR5/iLIDppNfuc5PAFGFl+Rxdaxd+xzYdRCYHpbmTbK047pVVyGvKdLFdkOu3G0FeddJJGdaUb8Z/wozdTm6h55/PFZMBu0ygG3JGkGqxmQcRvKDsx4unfNNPsh1xqSLnYUL486Sx05GinMgkWCRrQfLQj0Y9rsaPWLyZe2Tl3G4zxo67zJlPcP8ZWeiEZMhgKonHwe1zxdQaF8zsDBTRpND0Ug4fcSGOkA84Rh+EXelYEypc/wbb3y5RdwtZQ2nXADe7U0vIHEm1zC9jvRBo3A0kqUVvCbvYz+MwP1cQJXuy+rkKNF2 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 17:58:34.8023 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: bd48e395-c872-403a-ae84-08de7e057bb3 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[4.158.2.129]; Helo=[outbound-uk1.az.dlp.m.darktrace.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028CFF.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB9705 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org Python extension objects that support __dict__ must inherit from gdbpy_dict_wrapper, a wrapper class that stores the PyObject corresponding to the __dict__ attribute. Currently, management of this dictionary is not centralized, and each Python extension object implements its own logic to create, access, and destroy it. This patch focuses on the allocation of the dictionary, introduces a new method, gdbpy_dict_wrapper::allocate_dict(), and adapts the existing code to use this method. --- gdb/python/py-corefile.c | 3 +-- gdb/python/py-event.c | 7 +++---- gdb/python/py-inferior.c | 3 +-- gdb/python/py-infthread.c | 7 +++---- gdb/python/py-objfile.c | 7 +++---- gdb/python/py-progspace.c | 3 +-- gdb/python/py-ref.h | 7 +++++++ gdb/python/py-type.c | 9 +++------ 8 files changed, 22 insertions(+), 24 deletions(-) diff --git a/gdb/python/py-corefile.c b/gdb/python/py-corefile.c index de88a964efb..0c2821cb07e 100644 --- a/gdb/python/py-corefile.c +++ b/gdb/python/py-corefile.c @@ -132,8 +132,7 @@ gdbpy_core_file_from_inferior (inferior *inf) which requires that the 'inferior' be set to NULL. */ object->inferior = nullptr; object->mapped_files = nullptr; - object->dict = PyDict_New (); - if (object->dict == nullptr) + if (!object->allocate_dict ()) return nullptr; /* Now that the gdb.Corefile has been successfully initialised and we know diff --git a/gdb/python/py-event.c b/gdb/python/py-event.c index 39e1dd9c75f..8192d1cefa0 100644 --- a/gdb/python/py-event.c +++ b/gdb/python/py-event.c @@ -31,11 +31,10 @@ create_event_object (PyTypeObject *py_type) { gdbpy_ref event_obj (PyObject_New (event_object, py_type)); if (event_obj == NULL) - return NULL; + return nullptr; - event_obj->dict = PyDict_New (); - if (!event_obj->dict) - return NULL; + if (!event_obj->allocate_dict ()) + return nullptr; return event_obj; } diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index 4ad0ea1b264..eaf224fe808 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -224,8 +224,7 @@ inferior_to_inferior_object (struct inferior *inferior) inf_obj->inferior = inferior; inf_obj->threads = new thread_map_t (); - inf_obj->dict = PyDict_New (); - if (inf_obj->dict == nullptr) + if (!inf_obj->allocate_dict ()) return nullptr; /* PyObject_New initializes the new object with a refcount of 1. This counts diff --git a/gdb/python/py-infthread.c b/gdb/python/py-infthread.c index 0f29e9fb7a4..7afec0112fb 100644 --- a/gdb/python/py-infthread.c +++ b/gdb/python/py-infthread.c @@ -41,16 +41,15 @@ create_thread_object (struct thread_info *tp) gdbpy_ref inf_obj = inferior_to_inferior_object (tp->inf); if (inf_obj == NULL) - return NULL; + return nullptr; thread_obj.reset (PyObject_New (thread_object, &thread_object_type)); if (thread_obj == NULL) - return NULL; + return nullptr; thread_obj->thread = tp; thread_obj->inf_obj = (PyObject *) inf_obj.release (); - thread_obj->dict = PyDict_New (); - if (thread_obj->dict == nullptr) + if (!thread_obj->allocate_dict ()) return nullptr; return thread_obj; diff --git a/gdb/python/py-objfile.c b/gdb/python/py-objfile.c index bbe21d32549..daf1b44747c 100644 --- a/gdb/python/py-objfile.c +++ b/gdb/python/py-objfile.c @@ -201,12 +201,11 @@ objfpy_dealloc (PyObject *o) static bool objfpy_initialize (gdbpy_ref &self) { - self->objfile = NULL; - - self->dict = PyDict_New (); - if (self->dict == NULL) + if (!self->allocate_dict ()) return false; + self->objfile = NULL; + self->printers = PyList_New (0); if (self->printers == NULL) return false; diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c index f2585103346..d1a8479588f 100644 --- a/gdb/python/py-progspace.c +++ b/gdb/python/py-progspace.c @@ -171,8 +171,7 @@ pspy_initialize (gdbpy_ref &self) { self->pspace = NULL; - self->dict = PyDict_New (); - if (self->dict == NULL) + if (!self->allocate_dict ()) return false; self->printers = PyList_New (0); diff --git a/gdb/python/py-ref.h b/gdb/python/py-ref.h index 0a56436634d..f0cdb38498e 100644 --- a/gdb/python/py-ref.h +++ b/gdb/python/py-ref.h @@ -77,6 +77,13 @@ struct gdbpy_dict_wrapper : public PyObject auto *wrapper = reinterpret_cast (self); return &wrapper->dict; } + + bool + allocate_dict () + { + dict = PyDict_New (); + return dict != nullptr; + } }; #endif /* GDB_PYTHON_PY_REF_H */ diff --git a/gdb/python/py-type.c b/gdb/python/py-type.c index ec4126d0589..0893da5aec9 100644 --- a/gdb/python/py-type.c +++ b/gdb/python/py-type.c @@ -93,12 +93,9 @@ field_new (void) gdbpy_ref result (PyObject_New (field_object, &field_object_type)); - if (result != NULL) - { - result->dict = PyDict_New (); - if (!result->dict) - return NULL; - } + if (result != nullptr && !result->allocate_dict ()) + return nullptr; + return (PyObject *) result.release (); } -- 2.53.0