From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id gaKnEsgKr2k8hCAAWB0awg (envelope-from ) for ; Mon, 09 Mar 2026 14:00:40 -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=VexxmSaj; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=VexxmSaj; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 3AF621E089; Mon, 09 Mar 2026 14:00:40 -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 DB44E1E089 for ; Mon, 09 Mar 2026 14:00:38 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 71FDF4B9DB55 for ; Mon, 9 Mar 2026 18:00:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 71FDF4B9DB55 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=VexxmSaj; dkim=pass (1024-bit key) header.d=arm.com header.i=@arm.com header.a=rsa-sha256 header.s=selector1 header.b=VexxmSaj Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013014.outbound.protection.outlook.com [52.101.72.14]) by sourceware.org (Postfix) with ESMTPS id 5E5134B9DB65 for ; Mon, 9 Mar 2026 17:58:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 5E5134B9DB65 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 5E5134B9DB65 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=52.101.72.14 ARC-Seal: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1773079116; cv=pass; b=BQXaM5SJIIinfocIUvK6iGJOlyqoVZx4AGszVC1LTApuznjtyJennpVo0bPcrYqD7u+rrLzSe4TjttQOSwf5Mvcsc+wXnP4cNLwZW7d9sL2M9ZKvtpRf6cMTcUiJo6jHXOiom2m6ZvmNS72ck/DBeXvMarpzl6P2KdkjvbyRIhU= ARC-Message-Signature: i=3; a=rsa-sha256; d=sourceware.org; s=key; t=1773079116; c=relaxed/simple; bh=PbrQ4mt278LTQY7JGQFsPVnPGj476aCYVLqe320JjQE=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=jHu3UYgIEiduCYTNzZXMy5OB7Tu3tk3nkrTFBUL2w1H1vofeYkoxW1zwNUIOujKl97DtHS7V7tisgjT44kOFhUUIJFdw8Lcz/Ob0bEzcyl9Y1rgVC4X8p+FtNkuGqy6Aphum48EdP2YZd8njMYKsEQZ7yPhJ5b4Xc72Ee0sOEfY= ARC-Authentication-Results: i=3; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5E5134B9DB65 ARC-Seal: i=2; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=pass; b=Eh5rs4mjbNTw8biEc+97smybSgdMytJ8J4c+qjJEM5ucHqzPY9eMi/1fXKLNAHpu6aMGXEFq1BPibcoyTRhoimX/NbhvV2fWSKo5wEmoOggjmFKRa94lUcFwkQnPRIKIYyq6AyfHe2k6qT9/qXlv8AWHODOS1zZesbGqaOF9Frnh+fLQ7mWcfwWDPs8AGmm1rJ8YjZKLwRQY962bTSi998TzPgR0dWNICSMMZoqIbEat0QZorW2ZpsgUddZcqssTMmy2RdMZd6TKBPDatNZDLINvfU3V9hLJU9WP6jcLYlwKzi2KdreIkEodR0mMg8pzcJs2/slC7z+AHZ5FdS0Q2g== 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=uXHOLbWIkwHXsuTZnBnDSCGgWeEOUfHAeDyoncm8EVg=; b=ja7xztrY1YWg7yR/F4fvY1M4SUfH/Ow1vRyw8E20DLMGWnFHXIVVlGkIZwfUVVjwYNIWdM14srKZZGnCGWhcMrJlhJpNY42nwOZIOKJKXw8+9tA1xvcUkkF/+LQhcjK9QxdbGZXfV17P1PwMKqe0S/Tm1GjzG4W2t+0MBy/QqT83s8IWwhvn+HjxeTZnqv893bT0EU6L/3LmgFFgO+p1YTdmFm/G2GBDEmvfHBG5gyRybQ9N7nQ7G53sosHyslbnW5H3GPsII7ZAi2OORgR4DWkjK/7QtlWZ9Pz5esbDezzucFoytFpwxK54EjfebX1drV6kLJDLXut2iYOcLBybwQ== 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=uXHOLbWIkwHXsuTZnBnDSCGgWeEOUfHAeDyoncm8EVg=; b=VexxmSajMX/1MmUPXHg29vS+7ixCl0qgc2zAIBt46hcsaVnSuQl2j8Uuw3Y6VwWAMepVgx56L8QH0iRJL4NqgyQc0Tsmc/xwe598LtSQs2RBmL93DUoYL5Sem2NEoXPU7NFKa6e+WQ8mKFkU5s9e98iF5nD4x+aPStk39WmyjU4= Received: from AS9P251CA0012.EURP251.PROD.OUTLOOK.COM (2603:10a6:20b:50f::14) by DU0PR08MB10365.eurprd08.prod.outlook.com (2603:10a6:10:40b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.24; Mon, 9 Mar 2026 17:58:24 +0000 Received: from AM3PEPF0000A795.eurprd04.prod.outlook.com (2603:10a6:20b:50f:cafe::8a) by AS9P251CA0012.outlook.office365.com (2603:10a6:20b:50f::14) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Mon, 9 Mar 2026 17:58:21 +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 AM3PEPF0000A795.mail.protection.outlook.com (10.167.16.100) 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:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qlrvVpYqM2m+0ZlZRZiv9rnvkmny4uTvwVeTdfytALSASc4vUtXDhVlBQmeHW+/TPdbx81gkdTVwWRIoN4MeBD1XryMB8CmDdIy+0j/NIt17cSXoZrwct499FxehB/SgWCOXneEdiwQiJ7yGSivIOtEK+Gq1NBvq1iVdWyx/wLAxVg5uy7MtzyCKbijCGnYBOvj6FjVPE9CF88DZGR2QxXv0VgBa6ii6In0edkTzfBpRnfmxsrOty+y5+QW/NzKoBevw7YNAIPQSTB6323o0m8iIM1bzX4Gqb02MqyJALY5LoACg1y4ZLUcw3Jt5Bxyirj0yaoPjB1Vk3i9211sK7A== 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=uXHOLbWIkwHXsuTZnBnDSCGgWeEOUfHAeDyoncm8EVg=; b=BomCdCgSU5R6+YdiLTBB8PTpTnwRAe70iCqQtreftE0DUfGnl4JaEgCT+hIVzKurRGb2pxnP/lIAjQBO8fjDSmzcgIr0kLiDgb4d6E3BAEVkM6N/2xjg35HJALkxTH5+I6GJul3KT/XUzidEfx2A1fuqAvmz8DVDKXRwZy7HRZBao4QQsKev6zPaN24hg6dj35goSdgsYnbdTn9V0LjSHMhfGT6xMd8pg+/oyYVcXI9HXdScXa4/DyV6ucHCB0rIbCcSuQduCgvl/Rghwlvt8ilrYimYRlP3PSaTGBtFkuiV9GCxkGEZCPzSFho8iMzE99zjOPgTjVF2qrvghDeiRg== 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=uXHOLbWIkwHXsuTZnBnDSCGgWeEOUfHAeDyoncm8EVg=; b=VexxmSajMX/1MmUPXHg29vS+7ixCl0qgc2zAIBt46hcsaVnSuQl2j8Uuw3Y6VwWAMepVgx56L8QH0iRJL4NqgyQc0Tsmc/xwe598LtSQs2RBmL93DUoYL5Sem2NEoXPU7NFKa6e+WQ8mKFkU5s9e98iF5nD4x+aPStk39WmyjU4= Received: from DU7P191CA0003.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:54e::8) by VI1PR08MB5472.eurprd08.prod.outlook.com (2603:10a6:803:13b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.25; Mon, 9 Mar 2026 17:57:19 +0000 Received: from DB5PEPF00014B98.eurprd02.prod.outlook.com (2603:10a6:10:54e:cafe::71) by DU7P191CA0003.outlook.office365.com (2603:10a6:10:54e::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9678.25 via Frontend Transport; Mon, 9 Mar 2026 17:57:19 +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 DB5PEPF00014B98.mail.protection.outlook.com (10.167.8.165) 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:19 +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:19 +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:18 +0000 From: Matthieu Longo To: , Tom Tromey CC: Matthieu Longo Subject: [PATCH v3 5/7] gdb/python: flatten functions calling PyObject_New and use gdbpy_ref Date: Mon, 9 Mar 2026 17:56:22 +0000 Message-ID: <20260309175624.236491-6-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: DB5PEPF00014B98:EE_|VI1PR08MB5472:EE_|AM3PEPF0000A795:EE_|DU0PR08MB10365:EE_ X-MS-Office365-Filtering-Correlation-Id: 481feae0-1e51-4d8b-016a-08de7e0575b0 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|82310400026|36860700016|376014; X-Microsoft-Antispam-Message-Info-Original: Dv2rBiZRYyj8zOVkC7yjhCGDXMbsBjddRnVZbpi8mxgRIpRieChwt7Ww5Ee8AJDD7dO0kPAG+eSgQ4FOQHkg/yspVClWJ8bCYBW/pSELbemhE7LEzgU2KyAqVqCiJwuJMJmFltkDtRVddyfyTmPCcEuBnbOZGvLl7udLV/sRW7FpPm6uDjYwULbKYmFmAJe5Ox56eq9phLdxXVDnXmnZuh++jn5hkhfjmIVpzGHyUQnJsp59q8m/N/Ee3zZQRtXSuOWaJwCywUWO/JVq0wEjqpop1xNWMC4SALHa+fT54Tr4iaGb+ZVN7Qqj+2lhyPM8fxykGzTzCwc9gxRRJDGu5UgIgIqcFOCA0CNygnlBz8puqdeuEkC/PY67tzUi1zmPcbNlZknvyjAQcFa8n0Oxu1+//g/9fLh5iIHdMhdpK2YEFHtSTnBpT4VydiidALm9IzyW7JIbTceaorpRsDanFveCiTRNFzQx6iDXTDl4ljKjDxKxkUnwIYgVq6j/4FCRBhBrsJ7o0s0LKWTEHw4rrZOF9PULtjue5bAWEVa4yJIOCAyllJC+mCU7gt8qTLvTnEu4VrqjfbUjGJ459jhTX1bjVS85e75iZKNvnljAps0OLo+V9x4PXNJDqFkCFrcnZW4P6Z8Y/NA+DgpYerQNjWFgfEDkao3HeumxLwI89kewsM/taO9IAxHVrvlVGIzDQ7v5Nx096gmFHK5boKx5mXT02XdrRMXyS1D9ULwf8Idfaw9Ug/T75U0OvDOp82TYZj7In1frcwIpzQcespT6MA== 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)(82310400026)(36860700016)(376014); DIR:OUT; SFP:1101; X-Exchange-RoutingPolicyChecked: s2Jbtjj510mHCj80uZ96vut8cFtltK6p7Wyr1/bEGuN4vZ4KRtsvu9uHIHtxq1dYUvIknN5o/x6zP2on3sKg7GTFk9ZTNmikTwBXhRkSec7aofFOHUXnc8yfs0XRSd6J7uGMCLrEALKJMu3TVQfUbMXVNLY+rQ9clNR2XqNwpcK+u1IE+yzwo9a4wJAhFoen+lRBxkTBx5w3nK+K1BHtK3xlelLfAZxXi9WgNCFgQCFNrT/5SB7+mba7xlBAzNrkH/13j8C16WprdcsZKTWF7qiw/mI1zM37Lg1ccfFaPaRegOKh+ClXcbClBTba1SP6nIdtmMXVrZfAo9ga0dtwTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB5472 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM3PEPF0000A795.eurprd04.prod.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 6eb9c54b-c316-4db5-0246-08de7e054eda X-Microsoft-Antispam: BCL:0; ARA:13230040|14060799003|35042699022|82310400026|36860700016|376014|1800799024; X-Microsoft-Antispam-Message-Info: OcupguToBbAbqF0TMm0O0rJVroaaRasqzbTsHPZ9xtRwy+x3MIRcKyJBHD608tkybuGSYWVM9mpuCFgCQUvNqwF5BAX2wbCLzEPEfx0EFgJcEkhF+gi44c5Q8JKC+sGAyZCZllEsZ/vtWfmAin5sXPlAXXxsSSBKq+GQALVPCXo4ue6MqvqZJ2YwiGOHIC6CgVgQtumSWvOabRpbbVHSrPBrFwQgNyrfVShzmYxIMl4A0xWv1acoLXRDUdQ0gjDtNQfK6xG9bHmVs5xFFDMCbxtUReH2OVa23E870rSWpm/DcwuSCKqz5N6GKJPLTFbCSf1oQH3jDRQPJGgesYO824YAeZTWal6+dB2HOHJHg7zFswjOhKHbG6C/m+TWNGiiCUTO257GlMoqTo2/Bdr1jFMh6zzhUulnLIro1MATyEbVFQjtUTrK7kis8twbwOCZOdGQh3AcKqtpeWqte3kEX8zlCZBxO6sNCW8+TnSx9n9oQyzUC+CbkZd6ssfe25Dgin6kAHGWTA1D3UC0vkkcIat1SmZMc/5BG/czx7azCLBPCzbn3n2/UkYAaNQkn0iAB5ml6jQzhb2dCqvqzaguR/ha4wmgUHbJZEKqu7aEdA/4lqE4CQTeqmMnFtFWyHx3a2IYN8kZiK2ePXxojTMNZXzU5ql1SIEsllWtZcyhEPkhYzh5utaDrJJYpjSyxff8bpYbQkqR+FIHkZvZHqF/yeePDBK42T8kZNv3Re+55GtrxbyJR1V7nNkNfEVcXUMo3kyALaBFhhFZcDcVkrFjog== 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)(14060799003)(35042699022)(82310400026)(36860700016)(376014)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WKtsjyEx7+c/KDxrgFWVzQ5C+nMO8r3XzhUqrYZj1khp6+pTb4rbaUIyrY765ExyEhD06gcsBrqhOJozDfbXGlCZsgHUlzYFVQD16uVVvYdDWFsOP/mDCnPnDeurue1aXNqxfb0NSyVOY1G1AaBVIklTKgWeOEDky/spZpcYFDItTNh57oU3C7hRCHd3ReT6TCEbgNfmbHq/Pdyq60BAEQaO+2SrOUTuH6FnqqWcS3Q/l4t2FwG9Atf6GeB1idSptAsIJCZY2jKQUdTewgjB2BYsTMGPhay/HL+PC/wIMkhlVFfhWR89VK2HxRYxdais4tzGjQShQct8Ri01sSKSwQZe+Ej+/8aiGQGxRZHJDX1UGNEOYvYshYPqKpYsXqP10HDYYUoY4h0yXfpgfaKU+BDT/6Fj6mFGO+UALzp+lsOop6gMkNoGymSK3K8mMMCl X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2026 17:58:24.7164 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 481feae0-1e51-4d8b-016a-08de7e0575b0 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: AM3PEPF0000A795.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0PR08MB10365 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 This patch aims at systematically using gdbpy_ref<> at all call sites of PyObject_New(). This prepares for future patches that expect gdbby_ref<> parameters and affect return handling. As part of this change, flattening the affected functions so that the return logic becomes clearer and more flexible to adjust. --- gdb/python/py-corefile.c | 48 +++++++++++++++++++-------------------- gdb/python/py-inferior.c | 35 +++++++++++++--------------- gdb/python/py-progspace.c | 31 +++++++++++++------------ 3 files changed, 57 insertions(+), 57 deletions(-) diff --git a/gdb/python/py-corefile.c b/gdb/python/py-corefile.c index 762348121a7..de88a964efb 100644 --- a/gdb/python/py-corefile.c +++ b/gdb/python/py-corefile.c @@ -119,33 +119,33 @@ gdbpy_core_file_from_inferior (inferior *inf) return gdbpy_ref<>::new_reference (Py_None); PyObject *result = (PyObject *) cfpy_inferior_corefile_data_key.get (inf); - if (result == nullptr) - { - gdbpy_ref object - (PyObject_New (corefile_object, &corefile_object_type)); - if (object == nullptr) - return nullptr; + if (result != nullptr) + return gdbpy_ref<>::new_reference (result); - /* Ensure the 'inferior' field is set to NULL. If the PyDict_New - call fails then the gdb.Corefile will be discarded and - cfpy_dealloc will be called, which requires that the 'inferior' be - set to NULL. */ - object->inferior = nullptr; - object->mapped_files = nullptr; - object->dict = PyDict_New (); - if (object->dict == nullptr) - return nullptr; + gdbpy_ref object + (PyObject_New (corefile_object, &corefile_object_type)); + if (object == nullptr) + return nullptr; - /* Now that the gdb.Corefile has been successfully initialised and we - know that it is going to be passed back to the user, move it out - of the invalid state by setting the 'inferior' field to a non NULL - value. */ - object->inferior = inf; - cfpy_inferior_corefile_data_key.set (inf, object.get ()); - result = (PyObject *) object.release (); - } + /* Ensure the 'inferior' field is set to NULL. If the PyDict_New call fails + then the gdb.Corefile will be discarded and cfpy_dealloc will be called, + which requires that the 'inferior' be set to NULL. */ + object->inferior = nullptr; + object->mapped_files = nullptr; + object->dict = PyDict_New (); + if (object->dict == nullptr) + return nullptr; + + /* Now that the gdb.Corefile has been successfully initialised and we know + that it is going to be passed back to the user, move it out of the invalid + state by setting the 'inferior' field to a non NULL value. */ + object->inferior = inf; + + /* PyObject_New initializes the new object with a refcount of 1. This counts + for the reference we are keeping in the inferior corefile data. */ + cfpy_inferior_corefile_data_key.set (inf, object.get ()); - return gdbpy_ref<>::new_reference (result); + return gdbpy_ref<>::new_reference (object.release ()); } /* Return true if OBJ is valid. */ diff --git a/gdb/python/py-inferior.c b/gdb/python/py-inferior.c index e55360282b6..4ad0ea1b264 100644 --- a/gdb/python/py-inferior.c +++ b/gdb/python/py-inferior.c @@ -213,29 +213,26 @@ python_free_objfile (struct objfile *objfile) gdbpy_ref inferior_to_inferior_object (struct inferior *inferior) { - inferior_object *inf_obj; + inferior_object *result = infpy_inf_data_key.get (inferior); + if (result != nullptr) + return gdbpy_ref::new_reference (result); - inf_obj = infpy_inf_data_key.get (inferior); - if (!inf_obj) - { - inf_obj = PyObject_New (inferior_object, &inferior_object_type); - if (!inf_obj) - return NULL; + gdbpy_ref inf_obj + (PyObject_New (inferior_object, &inferior_object_type)); + if (inf_obj == nullptr) + return nullptr; - inf_obj->inferior = inferior; - inf_obj->threads = new thread_map_t (); - inf_obj->dict = PyDict_New (); - if (inf_obj->dict == nullptr) - return nullptr; + inf_obj->inferior = inferior; + inf_obj->threads = new thread_map_t (); + inf_obj->dict = PyDict_New (); + if (inf_obj->dict == nullptr) + return nullptr; - /* PyObject_New initializes the new object with a refcount of 1. This - counts for the reference we are keeping in the inferior data. */ - infpy_inf_data_key.set (inferior, inf_obj); - } + /* PyObject_New initializes the new object with a refcount of 1. This counts + for the reference we are keeping in the inferior data. */ + infpy_inf_data_key.set (inferior, inf_obj.get ()); - /* We are returning a new reference. */ - gdb_assert (inf_obj != nullptr); - return gdbpy_ref::new_reference (inf_obj); + return gdbpy_ref::new_reference (inf_obj.release ()); } /* Called when a new inferior is created. Notifies any Python event diff --git a/gdb/python/py-progspace.c b/gdb/python/py-progspace.c index 5a23c4c7177..f2585103346 100644 --- a/gdb/python/py-progspace.c +++ b/gdb/python/py-progspace.c @@ -585,21 +585,24 @@ gdbpy_ref<> pspace_to_pspace_object (struct program_space *pspace) { PyObject *result = (PyObject *) pspy_pspace_data_key.get (pspace); - if (result == NULL) - { - gdbpy_ref object - ((pspace_object *) PyObject_New (pspace_object, &pspace_object_type)); - if (object == NULL) - return NULL; - if (!pspy_initialize (object)) - return NULL; - - object->pspace = pspace; - pspy_pspace_data_key.set (pspace, object.get ()); - result = (PyObject *) object.release (); - } + if (result != nullptr) + return gdbpy_ref<>::new_reference (result); + + gdbpy_ref object + (PyObject_New (pspace_object, &pspace_object_type)); + if (object == nullptr) + return nullptr; + + if (!pspy_initialize (object)) + return nullptr; + + object->pspace = pspace; + + /* PyObject_New initializes the new object with a refcount of 1. This counts + for the reference we are keeping in the pspace data. */ + pspy_pspace_data_key.set (pspace, object.get ()); - return gdbpy_ref<>::new_reference (result); + return gdbpy_ref<>::new_reference (object.release ()); } /* See python-internal.h. */ -- 2.53.0