From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id E7WSB6g2dmpF2xEAWB0awg (envelope-from ) for ; Fri, 07 Aug 2026 15:48:56 -0400 Authentication-Results: simark.ca; dkim=fail reason="signature verification failed" (768-bit key; unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=xDnFH0F+; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 0CC5A1E09B; Fri, 07 Aug 2026 15:48:56 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-5.1 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [IPv6:2620:52:6:3111::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 6A33E1E09B for ; Fri, 07 Aug 2026 15:48:55 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0D2EF4BB1C10 for ; Fri, 7 Aug 2026 19:48:54 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0D2EF4BB1C10 Authentication-Results: sourceware.org; dkim=fail reason="signature verification failed" (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=xDnFH0F+ Received: from omta036.useast.a.cloudfilter.net (omta036.useast.a.cloudfilter.net [44.202.169.35]) by sourceware.org (Postfix) with ESMTPS id 33BBA4BAE7C4 for ; Fri, 7 Aug 2026 19:48:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 33BBA4BAE7C4 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 33BBA4BAE7C4 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=44.202.169.35 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786132110; cv=none; b=tAtgjC2/dmFdOs/8mILDlACABF7+EI8eSJAn0xoDNaFrpgzhu5wX8BUHPjwViXxKFiS44iTeARNWhDyzLSfoRTAuLyVtigFC4gT4uMVisviojSpn8kRYoySI0dhA5HpBChzfjO8lq+4JbRKv8qp6nEWqq5LxElgHatpe9H1ipOw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1786132110; c=relaxed/simple; bh=9+Lj+iyL+PXI884+8wf6MqqdtF1afoU+Z8FQLxHKD0s=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=xlHY2XxeNjL0N8tEz5tuLxQphuSAPpYsIrbqfa+E4Zg7USJNNRfAq0VtHmkCb/e+RU005tIm3rf2ZVYrM3o/U4oP4KTWvH8MKtCmUutN05bjR3o4bBJba8YGaHK7t0wTRD8hs2SqNsR73sd5FfOxFVsccDgzTrIyMcvGOWUnY1E= ARC-Authentication-Results: i=1; sourceware.org; dkim=policy (768-bit key, unprotected) header.d=tromey.com header.i=@tromey.com header.a=rsa-sha256 header.s=default header.b=xDnFH0F+ reason="signing key too small" DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 33BBA4BAE7C4 Received: from eig-obgw-5004b.ext.cloudfilter.net ([10.0.29.208]) by cmsmtp with ESMTPS id ryQfw8JtsD5UisQYPwR3p1; Fri, 07 Aug 2026 19:48:29 +0000 Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTPS id sQYPw8dDKLQlXsQYPwbCLO; Fri, 07 Aug 2026 19:48:29 +0000 X-Authority-Analysis: v=2.4 cv=AeWxH2XG c=1 sm=1 tr=0 ts=6a76368d a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=Sv0fKeRqtYgA:10 a=ItBw4LHWJt0A:10 a=rEz35o8P-aCMunRyRdMA:9 a=DCx65vhANUyCzuf5D8fC:22 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Type:MIME-Version:Message-ID:Date:References:In-Reply-To :Subject:Cc:To:From:Sender:Reply-To:Content-Transfer-Encoding:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=cyc7c+5kltNgxzRR+P2xs5DD1P8MspmEYy/ipA76PwY=; b=xDnFH0F+POPuqZbTwDY/1cSy4D T2Z/iYq64clj1A2SQ6OYs7+H7DHak0wzKFJiHkpB8Vgd1cXJlC4HKJagAnm/UWrRavQ674SaXxiWp iayJIAK7+mcRVSUrRaHPTWpHb; Received: from 75-166-225-82.hlrn.qwest.net ([75.166.225.82]:38306 helo=bapiya) by box5379.bluehost.com with esmtpsa (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.99.5) (envelope-from ) id 1wsQYO-00000000vHp-3aJW; Fri, 07 Aug 2026 13:48:28 -0600 From: Tom Tromey To: Tom de Vries Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [PATCH v3 0/4] Python safety initial work In-Reply-To: <464776ce-eadc-4ad9-8757-87e4457c7ce9@suse.de> (Tom de Vries's message of "Tue, 21 Jul 2026 13:45:58 +0200") References: <20260521-python-safety-initial-v3-0-d0679c36e499@tromey.com> <87qzmbdb6p.fsf@tromey.com> <87fr1e99yh.fsf@tromey.com> <464776ce-eadc-4ad9-8757-87e4457c7ce9@suse.de> X-Attribution: Tom Date: Fri, 07 Aug 2026 13:48:27 -0600 Message-ID: <87ldahyano.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 75.166.225.82 X-Source-L: No X-Exim-ID: 1wsQYO-00000000vHp-3aJW X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-166-225-82.hlrn.qwest.net (bapiya) [75.166.225.82]:38306 X-Source-Auth: tom+tromey.com X-Email-Count: 4 X-Org: HG=bhshared;ORG=bluehost; X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-CMAE-Envelope: MS4xfJbarkm6BeNoofU8VReUciROIArWkDqUBU3XKUC9BOJPThay1l1itL+GDUJvaqjGx4SAnUUs0i1orzhRHg1+kGUK7tHlc1xPCk0ecZRCBd9gmy0/cWRK FAENuq9MLUM2sBOdn9fb0JbB55mV5757JbWamBvexSw0u++/vwYiP1AIcQzCj7zBY252ZPn9wcxZFnSN8sk+KRwLmAyyT1mzpps= 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 >>>>> "Tom" == Tom de Vries writes: Tom> I found this code: Tom> ... Tom> /* Note this returns a borrowed reference. */ Tom> PyObject *arg = PyTuple_GetItem (args, i); Tom> ... Tom> and decided to try to convert all PyTuple_GetItem calls. The result Tom> of that exercise is attached. Tom> I ended up also touching the wrapper function: Tom> ... Tom> static inline gdbpy_borrowed_ref<> Tom> gdbpy_tuple_get_item (gdbpy_borrowed_ref<> tuple, Py_ssize_t pos) Tom> { Tom> - PyObject *result = PyTuple_GetItem (tuple, pos); Tom> + gdbpy_opt_borrowed_ref<> result = PyTuple_GetItem (tuple, pos); Tom> if (result == nullptr) Tom> throw gdb_python_exception (); Tom> - return result; Tom> + return (PyObject *)result; Tom> } Tom> ... Tom> but perhaps you left that out intentionally? Yeah, in this spot it didn't seem to really be necessary. The idea of the wrapper file is to eventually isolate all "raw" calls to the Python API. Tom> I haven't used the gdbpy_tuple_get_item wrapper, AFAICT it was not Tom> applicable. The long term goal is to convert everything to call the wrappers. This way exception handling will be enforced. Tom