[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

Reply via email to