Kaydet (Commit) 03acd85d authored tarafından Christian Heimes's avatar Christian Heimes

merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can…

merge -r59315:59316 from py3k: Fix issue #1553: An errornous __length_hint__ can make list() raise a SystemError
üst c8dbc923
...@@ -12,6 +12,9 @@ What's New in Python 2.5.2c1? ...@@ -12,6 +12,9 @@ What's New in Python 2.5.2c1?
Core and builtins Core and builtins
----------------- -----------------
- Issue #1553: An errornous __length_hint__ can make list() raise a
SystemError.
- Issue #1521: On 64bit platforms, using PyArgs_ParseTuple with the t# of w# - Issue #1521: On 64bit platforms, using PyArgs_ParseTuple with the t# of w#
format code incorrectly truncated the length to an int, even when format code incorrectly truncated the length to an int, even when
PY_SSIZE_T_CLEAN is set. The str.decode method used to return incorrect PY_SSIZE_T_CLEAN is set. The str.decode method used to return incorrect
......
...@@ -1507,8 +1507,9 @@ PySequence_Tuple(PyObject *v) ...@@ -1507,8 +1507,9 @@ PySequence_Tuple(PyObject *v)
/* Guess result size and allocate space. */ /* Guess result size and allocate space. */
n = _PyObject_LengthHint(v); n = _PyObject_LengthHint(v);
if (n < 0) { if (n < 0) {
if (!PyErr_ExceptionMatches(PyExc_TypeError) && if (PyErr_Occurred()
!PyErr_ExceptionMatches(PyExc_AttributeError)) { && !PyErr_ExceptionMatches(PyExc_TypeError)
&& !PyErr_ExceptionMatches(PyExc_AttributeError)) {
Py_DECREF(it); Py_DECREF(it);
return NULL; return NULL;
} }
......
...@@ -784,8 +784,9 @@ listextend(PyListObject *self, PyObject *b) ...@@ -784,8 +784,9 @@ listextend(PyListObject *self, PyObject *b)
/* Guess a result list size. */ /* Guess a result list size. */
n = _PyObject_LengthHint(b); n = _PyObject_LengthHint(b);
if (n < 0) { if (n < 0) {
if (!PyErr_ExceptionMatches(PyExc_TypeError) && if (PyErr_Occurred()
!PyErr_ExceptionMatches(PyExc_AttributeError)) { && !PyErr_ExceptionMatches(PyExc_TypeError)
&& !PyErr_ExceptionMatches(PyExc_AttributeError)) {
Py_DECREF(it); Py_DECREF(it);
return NULL; return NULL;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment