Neal Norwitz wrote:
> I checked in this fix for the __index__ clipping issue that's been
> discussed.  This patch is an improvement, but still needs some work.
> Please pull out any parts you have an issue with and suggest a patch
> to address your concern.
> 

For me the only remaining concern is that quite often in the code we do this

if (PyIndex_Check(obj)) {
...
        key = PyNumber_Index(obj);
or
        key_value = PyNumber_AsSize_t(obj, ...)
}
else {remaining checks}


Internally PyNumber_AsSize_t makes a call to PyNumber_Index, and 
PyNumber_Index also calls the PyIndex_Check as well .  So, basically we 
end up calling PyIndex_Check(obj) 2 times when only one check should be 
necessary.

This code could be re-written to move any other type checks first and 
replace the PyIndex_Check(obj) code with PyNumber_Index(obj) and error 
handling but I'm not sure if that's the right way to go or if it's worth 
it.

-Travis Oliphant



_______________________________________________
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