From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 6MuLBvpkl2daIRwAWB0awg (envelope-from ) for ; Mon, 27 Jan 2025 05:50:34 -0500 Received: by simark.ca (Postfix, from userid 112) id 179701E105; Mon, 27 Jan 2025 05:50:34 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.0 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (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 AA6201E08E for ; Mon, 27 Jan 2025 05:50:33 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 58A26385843B for ; Mon, 27 Jan 2025 10:50:33 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 58A26385843B Received: from us-smtp-delivery-114.mimecast.com (us-smtp-delivery-114.mimecast.com [170.10.133.114]) by sourceware.org (Postfix) with ESMTP id 837863857C5F for ; Mon, 27 Jan 2025 10:46:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 837863857C5F Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=labware.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=labware.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 837863857C5F Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.114 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1737974781; cv=none; b=aF0SqcqKyVjE6z09ojJeWOK/KQ56x1A+oqlBbKJXDrwqzbidg9R2rdixiYfv7s+bBABWnPUboY8sjOhSkgwMzr3Wco7E+U3kSLoBzgLpY7jBFQdXsxWjqrB2BI/5D/dNsrdN/A5y2/QnxTTf57sgjbK2p0w2FtOR17Gf/if2S+U= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1737974781; c=relaxed/simple; bh=a/0DM6/nkooQkMWCodmxmnPX0K5+PpxS9KVToF1j130=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=itshkFwkErHZeUve6CYDjbmo+qhqCshUtUofEYhmt3HpXP6WzK2+3SQjK842jy3dqEiWkf3Fc4PoB/yQDQSSIaKW6MWaMxr0aSpnGr8iar19wIy20MqKN5dGpfFbM8h+ltIlbJDenYN2rlOERhmUL1XbvuIma1x6xsSH+xQFzUI= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 837863857C5F Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-296-fdCT6wCqONC_Q_bT0Bzteg-1; Mon, 27 Jan 2025 05:46:20 -0500 X-MC-Unique: fdCT6wCqONC_Q_bT0Bzteg-1 X-Mimecast-MFC-AGG-ID: fdCT6wCqONC_Q_bT0Bzteg Received: from SA0PR17MB4314.namprd17.prod.outlook.com (2603:10b6:806:e7::16) by IA1PR17MB6170.namprd17.prod.outlook.com (2603:10b6:208:3a5::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.22; Mon, 27 Jan 2025 10:46:18 +0000 Received: from SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::38a7:a6f2:3b95:bc26]) by SA0PR17MB4314.namprd17.prod.outlook.com ([fe80::38a7:a6f2:3b95:bc26%5]) with mapi id 15.20.8377.021; Mon, 27 Jan 2025 10:46:18 +0000 From: Jan Vrany To: gdb-patches@sourceware.org CC: Jan Vrany Subject: [RFC 9/9] gdb/python: convert gdb.Symtab_and_line to use gdbpy_registry Date: Mon, 27 Jan 2025 10:44:35 +0000 Message-ID: <20250127104435.823519-10-jan.vrany@labware.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250127104435.823519-1-jan.vrany@labware.com> References: <20250127104435.823519-1-jan.vrany@labware.com> X-ClientProxiedBy: AS9PR06CA0086.eurprd06.prod.outlook.com (2603:10a6:20b:464::9) To SA0PR17MB4314.namprd17.prod.outlook.com (2603:10b6:806:e7::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SA0PR17MB4314:EE_|IA1PR17MB6170:EE_ X-MS-Office365-Filtering-Correlation-Id: d90bb446-96db-4da7-76fe-08dd3ebfd4c2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014 X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?jiEmQryM5Etr5WqGj/0UWwXrfNpz3BsVJMW63v3KWzBUSXAV+FPk3krR/6ZR?= =?us-ascii?Q?aJEw8osMmaMGmITXITP+HJavZeAcQWi/vwA0H7Sf4IuYJXJaR9QOkuWUSX3r?= =?us-ascii?Q?MMPcKSkh+Msz5RerihFk9JKb5eE1qScH7vjVKcvmBZzMwPRY3UfmxsEBV6N0?= =?us-ascii?Q?bPbYa5dWcNtJFiut/j34WimXn2yGTRRWCrhtWuwshENfeTvmjt12dQHm7ZF0?= =?us-ascii?Q?LW+VpJ9RD6QsMEGrx2zgKju9nzn0WEnI3jdIdOVfWa5upfOdREcSbK859Xx+?= =?us-ascii?Q?MIdakYz4hC+UxzAnSCeTj1v/bEKq3S8lmKf6p3HbVb6kpl+RiohwSUiFWYVO?= =?us-ascii?Q?TRinpRv0cANONEp2woFAUIBiyqIsPOzO2ZNhwP54xcbA8+t7JIjJA1RcymK3?= =?us-ascii?Q?baG/NuodwNMVeSXzVJsAT2VN+JkI2hTL2ldtIXL0toY1kxf7ulVUF+jOdSku?= =?us-ascii?Q?nnoJIHSPfbvOBvk2swKAdyIKFJ5+ZMPVkLuyr6UPE3qhA8hMI4nelOD6Mx2b?= =?us-ascii?Q?7sBnGDfDZFUD4XJ7KPlggPqpTMseFKxiWgrhZFJ3aoM8tbYypPPrh+yHGPlR?= =?us-ascii?Q?f6EsTxfHwgJk8R1ydjWvKxE0nbFbslwOU3bqdf0R7V3ZLVxvgzQEUltl4bcK?= =?us-ascii?Q?C9OfbJcd1SoTYoqBOYwI9/rGWpyLTcfS4evA5a35tv4MjUWGKyxeMUiSphfQ?= =?us-ascii?Q?um1GZ6pK69oP3uue+hTkI75eJqoyYK1l/iDOm19mTwWslfu/0kqu4XR2irxe?= =?us-ascii?Q?22lIUIPe/GjREw03DbdBhiTldjHJ688fHb1amJIOMGSUkIjgAR8mXh+jpy2S?= =?us-ascii?Q?iYQzxera7MpNgQSqg1r04SqLIvT5GquthskTbsd7x/L4O+dRdkMozc/lhG72?= =?us-ascii?Q?Oi2Xe1ClRSzA9177hbbwCUujLsDGayJG+blShOQ+tKwLQnLzHGAMKmbn9TZW?= =?us-ascii?Q?L8CXswPw2kIziyPA4OyLijwgUDW4QUW8G5jK6kBhF7iLcrO0cFUFZ7derW16?= =?us-ascii?Q?QnJstHnjN4NwD9JG1MhFR6jkqBg+NW/KgFsrMWoO7uV+lmDb7BGERqlkrU+z?= =?us-ascii?Q?95alWYZmv7yPhAzQ6zwL82f0kgAy74dzS3ummjvl2un9WUEAyWbhlrbVcyTw?= =?us-ascii?Q?midu7vfFDt0R72HAgf5LxxZyKXXMvwYGcJK0aTWfU+SyFzUbXbU9KWo0HWlz?= =?us-ascii?Q?DNxPUp05fPM6R1QBUO7kYQjSF0qQLO2oAuFVfoKP7q+QjQGoqZejdEpo46+N?= =?us-ascii?Q?l+s+MImiGpAgkXjx0oTwYvgbbCtT5E9K4Ll11oKqSwMmugETSWuH8RpLOR8s?= =?us-ascii?Q?UezaZ1HrSkovgNpiFbQtZWQ1tHXmtN0R8CpOWT+WRHE3G1754aMXDocaI4WP?= =?us-ascii?Q?Uo0WfbVcWGqp+uhBlXtWSy9hM+q6?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SA0PR17MB4314.namprd17.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Q9fgdLUx4FlfsP3MoAWZD/+s84eWv1LLpN/kPNiXtNfdcWPPySQWUxojgMSM?= =?us-ascii?Q?J5uKE2Zs2iJRboau8mnYuCYWV/lJ2ExRMzw07Q5WgErC43U2WGVX8uS+7iav?= =?us-ascii?Q?ZGRM0Cx85XepYYM7HvY5P7C+3iU2RGWRYT8VhwAzUT1xP5xNoxKx/0N/FRvZ?= =?us-ascii?Q?06pLwCuVKvGmvYLHRFx82JSL1s3kfrc0G89/6AuMMkeoHjTjumJyTmCMugLi?= =?us-ascii?Q?S4Dbfya2jP16Q+eHNxfBUseTRpJ/37mUrI0pKjVWPWukaFFyH+IpS0WgiPt2?= =?us-ascii?Q?N2nQ7xF9JC1D4TGO/jZ2JY0EbKiHK8npC0kZRhX1db/WVsQXsbqh+VusV2Xa?= =?us-ascii?Q?sQt+2I9rqlIfzNO+ecxY4gN/cqy/53HjblKBAfps1L1qi48WuADdlKngCCem?= =?us-ascii?Q?Qy4HCVv/IiGVtUydSIsU3EACWVecQjUepJKwZKotRnEzlK740OgRWaOfGSTy?= =?us-ascii?Q?NJ03XbWAmEEycIHIjaHuKIkcNOdmIIfE02v2gobZ3H0Mxpm6UQ/6VLCLP5eB?= =?us-ascii?Q?9waSWO6a0jSONHyciTRfCyjgCCc9yyB1dbgPwCuj2KbfpHDLpFCRuQISVgfQ?= =?us-ascii?Q?8XUv2VlyBq5Lr2ZkgU+2GtqvjKv2g1DWzEgZjW78uG/Jw3o1MckwMZpQ1DPJ?= =?us-ascii?Q?wKaTjOTMiemKiZ5tYkc56mpc65r0UdlXrtaAsfVTcCdyQ/8nsCHVhcPapWdr?= =?us-ascii?Q?hbdXmKbLZZhYtYnAR2BJNuM9cn6/a9eQFAhdLcgUK26nLkOJygn/LkBRdtjL?= =?us-ascii?Q?9C1usnEWoHaY9qbNHNFUDZ81Y/7fZnYAdicQM1Nj4MYDvujk0c0nXE/hAs+S?= =?us-ascii?Q?Xr5xCLenhEQQKCzzo6QjZ+aK/SEZoWmAMj5nizVp+m4uhcNUrcgtecLqNKGd?= =?us-ascii?Q?mRtySza8ibAullE89rAhEnXV9DBLgEktS+cYPAPjXlZSx7uhQTm+A2AdKp8V?= =?us-ascii?Q?PQGGMfNxBv2N5QAY9H7R46zEgLqpuCaU9yq266dnZ0th766+Q282oyW2DSWu?= =?us-ascii?Q?x6IGSmolzVNawwtezEb2KFPjML42JxI4A1tJ+T+XeMwM74YniW03hDzhGDGL?= =?us-ascii?Q?dNa4cnVYnwNyabW51W42tDbDyyqTImwrWySwTL2axeu2XadmKno0TMqCUa2z?= =?us-ascii?Q?1Jtgpm0QZc4rRM8b0+Kn5pyxP7qF1LtOK290V16zchEd9xTCAi/2C/uCTV57?= =?us-ascii?Q?NGshYRyskG0XAd6tEb6lKPgI6luwE4J/wiwt0X/ZBHGhpc9cbCpNe9aEO4T/?= =?us-ascii?Q?UsIkwx6GpFScLgj4SDg4jq95waMYbXtvR9WMICSjFlt+m1utQu7gip525cO/?= =?us-ascii?Q?M2AGwwz3TebuAf6mtqIVW6kHwfMytuWwX5ih2rqLK7mUWQK2yC5s+8nboTci?= =?us-ascii?Q?VKowswdUWt7BA0UshxYbF3eJyF3l5vq96uN4DNBzdBJsxoPT23kSubzrFMUL?= =?us-ascii?Q?dwbiUf4a0lQyZGeKJpzqk4f0N2p315ulWg3DvtOwlKwNN07ECqK2PM/YWQzd?= =?us-ascii?Q?XTns1VYz3K9QOSxCki6J2tgPkGDtbwC7iHPh/wY/TJqDT8gL19yvjLH1figZ?= =?us-ascii?Q?sVMWhJ7SS7BtcORKPdpHwvUG8+rxZvynYAkE+4Uh?= X-OriginatorOrg: labware.com X-MS-Exchange-CrossTenant-Network-Message-Id: d90bb446-96db-4da7-76fe-08dd3ebfd4c2 X-MS-Exchange-CrossTenant-AuthSource: SA0PR17MB4314.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Jan 2025 10:46:18.6413 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: b5db0322-1aa0-4c0a-859c-ad0f96966f4c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: u9UmlYqgm7n8GAyrgz/ELltxnozIicHhsG+3awItnnTzyDbY7XHpbfL23aHzAm8ebZr10oNxI1sM7ZGuS8tGzw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR17MB6170 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: tnHph9dEquqyjJAWgDhE8qB-Fq7b0hQ1C24-V0fCO_4_1737974779 X-Mimecast-Originator: labware.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=WINDOWS-1252 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 commit converts gdb.Symtab_and_line to use gdbpy_registry for lifecycle management. --- gdb/python/py-symtab.c | 47 ++++++++++-------------------------------- 1 file changed, 11 insertions(+), 36 deletions(-) diff --git a/gdb/python/py-symtab.c b/gdb/python/py-symtab.c index 417ad68a155..8749380ed2c 100644 --- a/gdb/python/py-symtab.c +++ b/gdb/python/py-symtab.c @@ -65,30 +65,19 @@ struct sal_object { data. All access to obj->sal should be gated by SALPY_REQUIRE_VALID which will raise an exception on invalid symbol table and line objects. */ -struct salpy_deleter +struct salpy_invalidator { void operator() (sal_object *obj) { - gdbpy_enter enter_py; - - while (obj) - { -=09sal_object *next =3D obj->next; - -=09obj->next =3D nullptr; -=09obj->prev =3D nullptr; -=09xfree (obj->sal); -=09obj->sal =3D nullptr; - -=09obj =3D next; - } + xfree (obj->sal); + obj->sal =3D nullptr; } }; =20 extern PyTypeObject sal_object_type CPYCHECKER_TYPE_OBJECT_FOR_TYPEDEF ("sal_object"); -static const registry::key - salpy_objfile_data_key; +static const gdbpy_registry> + salpy_registry; =20 /* Require a valid symbol table and line object. All access to sal_object->sal should be gated by this call. */ @@ -322,15 +311,9 @@ salpy_dealloc (PyObject *self) { sal_object *self_sal =3D (sal_object *) self; =20 - if (self_sal->prev) - self_sal->prev->next =3D self_sal->next; - else if (self_sal->sal !=3D nullptr && self_sal->sal->symtab !=3D nullpt= r) - salpy_objfile_data_key.set - (self_sal->sal->symtab->compunit ()->objfile (), - self_sal->next); - - if (self_sal->next) - self_sal->next->prev =3D self_sal->prev; + if (self_sal->sal !=3D nullptr && self_sal->sal->symtab !=3D nullptr) + salpy_registry.remove (self_sal->sal->symtab->compunit ()->objfile (), +=09=09=09 self_sal); =20 xfree (self_sal->sal); Py_TYPE (self)->tp_free (self); @@ -347,22 +330,14 @@ set_sal (sal_object *sal_obj, struct symtab_and_line = sal) sal_obj->sal =3D ((struct symtab_and_line *) =09=09 xmemdup (&sal, sizeof (struct symtab_and_line), =09=09=09 sizeof (struct symtab_and_line))); - sal_obj->prev =3D NULL; + sal_obj->prev =3D nullptr; + sal_obj->next =3D nullptr; =20 /* If the SAL does not have a symtab, we do not add it to the objfile cleanup observer linked list. */ symtab *symtab =3D sal_obj->sal->symtab; if (symtab !=3D nullptr) - { - sal_obj->next -=09=3D salpy_objfile_data_key.get (symtab->compunit ()->objfile ()); - if (sal_obj->next) -=09sal_obj->next->prev =3D sal_obj; - - salpy_objfile_data_key.set (symtab->compunit ()->objfile (), sal_obj= ); - } - else - sal_obj->next =3D NULL; + salpy_registry.add (symtab->compunit ()->objfile (), sal_obj); } =20 /* Given a symtab, and a symtab_object that has previously been --=20 2.45.2