Patch #1024670: Support int objects in PyLong_AsUnsignedLong[Mask].

This commit is contained in:
Martin v. Löwis 2004-09-20 06:17:46 +00:00
parent f13337dd38
commit 729d47db09
2 changed files with 12 additions and 1 deletions

View file

@ -12,7 +12,7 @@ What's New in Python 2.4 beta 1?
Core and builtins
-----------------
...
- PyLong_AsUnsignedLong[Mask] now support int objects as well.
Extension modules
-----------------

View file

@ -245,6 +245,15 @@ PyLong_AsUnsignedLong(PyObject *vv)
int i;
if (vv == NULL || !PyLong_Check(vv)) {
if (vv != NULL && PyInt_Check(vv)) {
long val = PyInt_AsLong(vv);
if (val < 0) {
PyErr_SetString(PyExc_OverflowError,
"can't convert negative value to unsigned long");
return (unsigned long) -1;
}
return val;
}
PyErr_BadInternalCall();
return (unsigned long) -1;
}
@ -279,6 +288,8 @@ PyLong_AsUnsignedLongMask(PyObject *vv)
int i, sign;
if (vv == NULL || !PyLong_Check(vv)) {
if (vv != NULL && PyInt_Check(vv))
return PyInt_AsUnsignedLongMask(vv);
PyErr_BadInternalCall();
return (unsigned long) -1;
}