mirror of
https://github.com/python/cpython.git
synced 2025-07-24 11:44:31 +00:00
Merged the int/long unification branch, by very crude means (sorry Thomas!).
I banged on the code (beyond what's in that branch) to make fewer tests fail; the only tests that fail now are: test_descr -- can't pickle ints?! test_pickletools -- ??? test_socket -- See python.org/sf/1619659 test_sqlite -- ??? I'll deal with those later.
This commit is contained in:
parent
5b787e8bc2
commit
ddefaf31b3
46 changed files with 798 additions and 404 deletions
|
@ -5437,32 +5437,21 @@ posix_setgroups(PyObject *self, PyObject *groups)
|
|||
elem = PySequence_GetItem(groups, i);
|
||||
if (!elem)
|
||||
return NULL;
|
||||
if (!PyInt_Check(elem)) {
|
||||
if (!PyLong_Check(elem)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"groups must be integers");
|
||||
if (!PyLong_Check(elem)) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"groups must be integers");
|
||||
Py_DECREF(elem);
|
||||
return NULL;
|
||||
} else {
|
||||
unsigned long x = PyLong_AsUnsignedLong(elem);
|
||||
if (PyErr_Occurred()) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"group id too big");
|
||||
Py_DECREF(elem);
|
||||
return NULL;
|
||||
} else {
|
||||
unsigned long x = PyLong_AsUnsignedLong(elem);
|
||||
if (PyErr_Occurred()) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"group id too big");
|
||||
Py_DECREF(elem);
|
||||
return NULL;
|
||||
}
|
||||
grouplist[i] = x;
|
||||
/* read back the value to see if it fitted in gid_t */
|
||||
if (grouplist[i] != x) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"group id too big");
|
||||
Py_DECREF(elem);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
long x = PyInt_AsLong(elem);
|
||||
grouplist[i] = x;
|
||||
/* read back the value to see if it fitted in gid_t */
|
||||
if (grouplist[i] != x) {
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"group id too big");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue