diff options
author | Mark Dickinson <mdickinson@enthought.com> | 2011-10-23 19:47:14 (GMT) |
---|---|---|
committer | Mark Dickinson <mdickinson@enthought.com> | 2011-10-23 19:47:14 (GMT) |
commit | 8d48b43ea9abe494527acea05dcd6b8d067278ea (patch) | |
tree | 7119d49b5d39d7b9177878fbd38ad0c76bbd4f71 /Objects | |
parent | 30970e9e4436fca6320667e74b8667287b59e026 (diff) | |
download | cpython-8d48b43ea9abe494527acea05dcd6b8d067278ea.zip cpython-8d48b43ea9abe494527acea05dcd6b8d067278ea.tar.gz cpython-8d48b43ea9abe494527acea05dcd6b8d067278ea.tar.bz2 |
Issue #12965: Fix some inaccurate comments in Objects/longobject.c. Thanks Stefan Krah.
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/longobject.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/Objects/longobject.c b/Objects/longobject.c index 43e5f01..ab49f28 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -322,8 +322,15 @@ PyLong_FromDouble(double dval) #define PY_ABS_LONG_MIN (0-(unsigned long)LONG_MIN) #define PY_ABS_SSIZE_T_MIN (0-(size_t)PY_SSIZE_T_MIN) -/* Get a C long int from a long int object. - Returns -1 and sets an error condition if overflow occurs. */ +/* Get a C long int from a long int object or any object that has an __int__ + method. + + On overflow, return -1 and set *overflow to 1 or -1 depending on the sign of + the result. Otherwise *overflow is 0. + + For other errors (e.g., TypeError), return -1 and set an error condition. + In this case *overflow will be 0. +*/ long PyLong_AsLongAndOverflow(PyObject *vv, int *overflow) @@ -412,6 +419,9 @@ PyLong_AsLongAndOverflow(PyObject *vv, int *overflow) return res; } +/* Get a C long int from a long int object or any object that has an __int__ + method. Return -1 and set an error if overflow occurs. */ + long PyLong_AsLong(PyObject *obj) { @@ -923,7 +933,7 @@ _PyLong_AsByteArray(PyLongObject* v, } -/* Create a new long (or int) object from a C pointer */ +/* Create a new long int object from a C pointer */ PyObject * PyLong_FromVoidPtr(void *p) @@ -941,15 +951,11 @@ PyLong_FromVoidPtr(void *p) } -/* Get a C pointer from a long object (or an int object in some cases) */ +/* Get a C pointer from a long int object. */ void * PyLong_AsVoidPtr(PyObject *vv) { - /* This function will allow int or long objects. If vv is neither, - then the PyLong_AsLong*() functions will raise the exception: - PyExc_SystemError, "bad argument to internal function" - */ #if SIZEOF_VOID_P <= SIZEOF_LONG long x; @@ -1130,8 +1136,8 @@ PyLong_FromSize_t(size_t ival) return (PyObject *)v; } -/* Get a C PY_LONG_LONG int from a long int object. - Return -1 and set an error if overflow occurs. */ +/* Get a C long long int from a long int object or any object that has an + __int__ method. Return -1 and set an error if overflow occurs. */ PY_LONG_LONG PyLong_AsLongLong(PyObject *vv) @@ -1287,12 +1293,14 @@ PyLong_AsUnsignedLongLongMask(register PyObject *op) } #undef IS_LITTLE_ENDIAN -/* Get a C long long int from a Python long or Python int object. - On overflow, returns -1 and sets *overflow to 1 or -1 depending - on the sign of the result. Otherwise *overflow is 0. +/* Get a C long long int from a long int object or any object that has an + __int__ method. + + On overflow, return -1 and set *overflow to 1 or -1 depending on the sign of + the result. Otherwise *overflow is 0. - For other errors (e.g., type error), returns -1 and sets an error - condition. + For other errors (e.g., TypeError), return -1 and set an error condition. + In this case *overflow will be 0. */ PY_LONG_LONG |