On Fri, Feb 17, 2012 at 1:50 AM, "Martin v. Löwis" <mar...@v.loewis.de> wrote:
>>> Good idea. However, how do you track per-dict how large the
>>> table is?

[Or, rather, what is the highest index needed to store any values
that are actually set for this instance.]

> To determine whether it needs to grow the array, it needs to find out
> how large the array is, no? So: how do you do that?

Ah, now I understand; you do need a single ssize_t either on the dict
or at the head of the values array to indicate how many slots it has
actually allocated.  It *may* also be worthwhile to add a second
ssize_t to indicate how many are currently in use, for faster results
in case of len.  But the dict is guaranteed to have at least one free
slot, so that extra index will never make the allocation larger than
the current code.

-jJ
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to