[Python-Dev] check for PyUnicode_READY look backwards
Terry Reedy
tjreedy at udel.edu
Sat Oct 8 01:13:10 CEST 2011
On 10/7/2011 10:06 AM, Nick Coghlan wrote:
> On Fri, Oct 7, 2011 at 9:21 AM, "Martin v. Löwis"<martin at v.loewis.de> wrote:
>> > if (!PyUnicode_READY(foo)) is not better, also because of
>>>
>>> PyUnicode_IS_READY(foo).
>>>
>>> I prefer PyUnicode_IS_READY(foo)< 0 over PyUnicode_IS_READY(foo) == -1.
>>>
>>
>> Ok, so feel free to replace all == -1 tests with< 0 tests as well.
>>
>> I'll point out that the test for -1 is also widespread in Python,
>> e.g. when checking return values from PyObject_SetAttrString,
>> BaseException_init, PyThread_create_key, PyObject_DelAttrString, etc.
>
> FWIW, I don't mind whether it's "< 0" or "== -1", so long as there's a
> comparison there to kick my brain out of Python boolean logic mode.
Is there any speed difference (on common x86/64 processors and
compilers)? I would expect that '< 0' should be optimized to just check
the sign bit and 'if n < 0' to 'load n; jump-non-negative'.
--
Terry Jan Reedy
More information about the Python-Dev
mailing list