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:
Guido van Rossum 2007-01-14 03:31:43 +00:00
parent 5b787e8bc2
commit ddefaf31b3
46 changed files with 798 additions and 404 deletions

View file

@ -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");