Merged revisions 69688,69690 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r69688 | benjamin.peterson | 2009-02-16 15:07:52 -0600 (Mon, 16 Feb 2009) | 1 line

  fix compiler warnings
........
  r69690 | benjamin.peterson | 2009-02-16 15:23:04 -0600 (Mon, 16 Feb 2009) | 1 line

  PyList_Append() can fail
........
This commit is contained in:
Benjamin Peterson 2009-02-16 21:28:29 +00:00
parent 2c9abd5919
commit 25e26a02f4
1 changed files with 9 additions and 7 deletions

View File

@ -745,8 +745,10 @@ cycle_next(cycleobject *lz)
while (1) { while (1) {
item = PyIter_Next(lz->it); item = PyIter_Next(lz->it);
if (item != NULL) { if (item != NULL) {
if (!lz->firstpass) if (!lz->firstpass && PyList_Append(lz->saved, item)) {
PyList_Append(lz->saved, item); Py_DECREF(item);
return NULL;
}
return item; return item;
} }
if (PyErr_Occurred()) { if (PyErr_Occurred()) {
@ -2922,8 +2924,8 @@ count_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
kwlist, &long_cnt, &long_step)) kwlist, &long_cnt, &long_step))
return NULL; return NULL;
if (long_cnt != NULL && !PyNumber_Check(long_cnt) || if ((long_cnt != NULL && !PyNumber_Check(long_cnt)) ||
long_step != NULL && !PyNumber_Check(long_step)) { (long_step != NULL && !PyNumber_Check(long_step))) {
PyErr_SetString(PyExc_TypeError, "a number is required"); PyErr_SetString(PyExc_TypeError, "a number is required");
return NULL; return NULL;
} }
@ -2950,8 +2952,8 @@ count_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
} else } else
long_cnt = NULL; long_cnt = NULL;
} }
assert(cnt != PY_SSIZE_T_MAX && long_cnt == NULL || assert((cnt != PY_SSIZE_T_MAX && long_cnt == NULL) ||
cnt == PY_SSIZE_T_MAX && long_cnt != NULL); (cnt == PY_SSIZE_T_MAX && long_cnt != NULL));
/* create countobject structure */ /* create countobject structure */
lz = (countobject *)type->tp_alloc(type, 0); lz = (countobject *)type->tp_alloc(type, 0);
@ -2975,6 +2977,7 @@ count_dealloc(countobject *lz)
Py_TYPE(lz)->tp_free(lz); Py_TYPE(lz)->tp_free(lz);
} }
static int
count_traverse(countobject *lz, visitproc visit, void *arg) count_traverse(countobject *lz, visitproc visit, void *arg)
{ {
Py_VISIT(lz->long_cnt); Py_VISIT(lz->long_cnt);
@ -2985,7 +2988,6 @@ count_traverse(countobject *lz, visitproc visit, void *arg)
static PyObject * static PyObject *
count_nextlong(countobject *lz) count_nextlong(countobject *lz)
{ {
static PyObject *one = NULL;
PyObject *long_cnt; PyObject *long_cnt;
PyObject *stepped_up; PyObject *stepped_up;