_csv: use _PyLong_AsInt()

This commit is contained in:
Victor Stinner 2016-10-19 16:00:37 +02:00
parent af48a91715
commit 7a6dbb71b2
1 changed files with 4 additions and 10 deletions

View File

@ -209,23 +209,17 @@ _set_int(const char *name, int *target, PyObject *src, int dflt)
if (src == NULL)
*target = dflt;
else {
long value;
int value;
if (!PyLong_CheckExact(src)) {
PyErr_Format(PyExc_TypeError,
"\"%s\" must be an integer", name);
return -1;
}
value = PyLong_AsLong(src);
if (value == -1 && PyErr_Occurred())
return -1;
#if SIZEOF_LONG > SIZEOF_INT
if (value > INT_MAX || value < INT_MIN) {
PyErr_Format(PyExc_ValueError,
"integer out of range for \"%s\"", name);
value = _PyLong_AsInt(src);
if (value == -1 && PyErr_Occurred()) {
return -1;
}
#endif
*target = (int)value;
*target = value;
}
return 0;
}