From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19965 invoked by alias); 2 Sep 2011 10:06:30 -0000 Received: (qmail 19951 invoked by uid 22791); 2 Sep 2011 10:06:29 -0000 X-SWARE-Spam-Status: No, hits=-6.7 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 02 Sep 2011 10:06:08 +0000 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p82A66Ys013210 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 2 Sep 2011 06:06:07 -0400 Received: from localhost.localdomain (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p82A65CS032732; Fri, 2 Sep 2011 06:06:05 -0400 From: Phil Muldoon To: Matt Rice Cc: Tom Tromey , gdb-patches@sourceware.org Subject: Re: [PATCH 4/7] [python] API for macros: Add methods to get a gdb.Macro. References: <1314198654-9008-1-git-send-email-ratmice@gmail.com> <1314198654-9008-5-git-send-email-ratmice@gmail.com> Reply-to: pmuldoon@redhat.com X-URL: http://www.redhat.com Date: Fri, 02 Sep 2011 12:04:00 -0000 In-Reply-To: (Matt Rice's message of "Thu, 1 Sep 2011 15:56:48 -0700") Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-09/txt/msg00028.txt.bz2 Matt Rice writes: >>>>>>>>> "Phil" =3D=3D Phil Muldoon writes: >>>> >>>> Phil> I think this should return a Tuple. =C2=A0Tuples are immutable, = and unless >>>> Phil> you for see a use for the user to manipulate the List, we should= guard >>>> Phil> against it. =C2=A0If you agree, please alter stpy_macros too. >>>> >>>> Using a tuple means you have to iterate twice -- once to count the >>>> objects and once to make the tuple. >>> >>> You can use a list, and then convert it to a tuple: >>> >>> PyList_AsTuple >>> >>> We already use the above. >>> >>> If you wanted to, you could use PyTuple_Ruse, as long as there is >>> one reference to the tuple. >> >> Apologies for the typos, but the above should read: >> >> =C2=A0If you wanted too, you could use PyTuple_Resize, as long as there = is >> =C2=A0only one reference to the tuple. > > > I will try these out, (convert list->tuple and PyTuple_Resize()), > but PyTuple_Resize is going to use realloc, which could end up moving it.= .. Actually, just leave them. I thought about it some more, and with the macro counts being so incredibly large in some projects, I think just returning a list here would avoid large allocs/reallocs. So Tom was right, I was wrong. All normal ;) Cheers Phil