This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 4/7] [python] API for macros: Add methods to get a gdb.Macro.


On Tue, Aug 30, 2011 at 1:34 PM, Phil Muldoon <pmuldoon@redhat.com> wrote:
> Phil Muldoon <pmuldoon@redhat.com> writes:
>
>> Tom Tromey <tromey@redhat.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...

As Tom mentioned, we create a new list every time, so really its not
going to foul us up if the user does modify it.
What would be preferred is an immutable list with a constant time
append only exposed to the c api.
but python doesn't really have one of these.

I'll give it a shot and see how it performs, but my gut says list.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]