[Python-Dev] Returning -1 from function with unsigned long type
I'm fiddling with the compile Python w/ C++ stuff and came across a number of places where a function is defined as returning unsigned long or unsigned long long but returns -1. For example, see PyInt_AsUnsignedLongMask. What's the correct fix for that, return ~0 (assuming twos-complement arithmetic), cast -1 to unsigned long? Or does the API need to be changed somehow? Skip ___ 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
Re: [Python-Dev] Returning -1 from function with unsigned long type
[EMAIL PROTECTED] I'm fiddling with the compile Python w/ C++ stuff and came across a number of places where a function is defined as returning unsigned long or unsigned long long but returns -1. For example, see PyInt_AsUnsignedLongMask. What's the correct fix for that, return ~0 (assuming twos-complement arithmetic), cast -1 to unsigned long? Explicitly casting -1 is both the obvious and best way, and is guaranteed to work as intended by the standards. Or does the API need to be changed somehow? Well, it's ubiquitous in Python that C API calls returning any kind of integer return -1 (and arrange to make PyErr_Occurred() return true) in case of error. This is clumsy when the integer retured is of an unsigned type, but it _is_ C we're talking about ;-) ___ 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
Re: [Python-Dev] Returning -1 from function with unsigned long type
Tim Explicitly casting -1 is both the obvious and best way, and is Tim guaranteed to work as intended by the standards. Thanks. I'll fix 'em. Skip ___ 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