This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH 4/7] [python] API for macros: Add methods to get a gdb.Macro.
- From: Phil Muldoon <pmuldoon at redhat dot com>
- To: Matt Rice <ratmice at gmail dot com>
- Cc: Tom Tromey <tromey at redhat dot com>, gdb-patches at sourceware dot org
- Date: Fri, 02 Sep 2011 11:06:04 +0100
- 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> <m3k49vt5jc.fsf@redhat.com> <m3pqjmbxvu.fsf@fleche.redhat.com> <m3d3fmr6e4.fsf@redhat.com> <m34o0yr63g.fsf@redhat.com> <CACTLOFpyH79uLw2tFjk=Z+G6+n8DxHWbtWYOEtxgnVvVDJ3WrA@mail.gmail.com>
- Reply-to: pmuldoon at redhat dot com
Matt Rice <ratmice@gmail.com> writes:
>>>>>>>>> "Phil" == Phil Muldoon <pmuldoon@redhat.com> writes:
>>>>
>>>> Phil> I think this should return a Tuple. ÂTuples are immutable, and unless
>>>> Phil> you for see a use for the user to manipulate the List, we should guard
>>>> Phil> against it. ÂIf 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:
>>
>> ÂIf you wanted too, you could use PyTuple_Resize, as long as there is
>> Âonly 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