mirror of
https://github.com/python/cpython.git
synced 2025-11-03 03:22:27 +00:00
Merged revisions 68560 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk ........ r68560 | amaury.forgeotdarc | 2009-01-13 00:36:55 +0100 (mar., 13 janv. 2009) | 6 lines #3720: Interpreter crashes when an evil iterator removes its own next function. Now the slot is filled with a function that always raises. Will not backport: extensions compiled with 2.6.x would not run on 2.6.0. ........
This commit is contained in:
parent
e5e298f875
commit
f343e01c17
10 changed files with 47 additions and 67 deletions
|
|
@ -612,7 +612,8 @@ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
|
|||
is an iterator, this returns itself. */
|
||||
|
||||
#define PyIter_Check(obj) \
|
||||
((obj)->ob_type->tp_iternext != NULL)
|
||||
((obj)->ob_type->tp_iternext != NULL && \
|
||||
(obj)->ob_type->tp_iternext != &_PyObject_NextNotImplemented)
|
||||
|
||||
PyAPI_FUNC(PyObject *) PyIter_Next(PyObject *);
|
||||
/* Takes an iterator object and calls its tp_iternext slot,
|
||||
|
|
|
|||
|
|
@ -438,6 +438,7 @@ PyAPI_FUNC(int) PyObject_SetAttr(PyObject *, PyObject *, PyObject *);
|
|||
PyAPI_FUNC(int) PyObject_HasAttr(PyObject *, PyObject *);
|
||||
PyAPI_FUNC(PyObject **) _PyObject_GetDictPtr(PyObject *);
|
||||
PyAPI_FUNC(PyObject *) PyObject_SelfIter(PyObject *);
|
||||
PyAPI_FUNC(PyObject *) _PyObject_NextNotImplemented(PyObject *);
|
||||
PyAPI_FUNC(PyObject *) PyObject_GenericGetAttr(PyObject *, PyObject *);
|
||||
PyAPI_FUNC(int) PyObject_GenericSetAttr(PyObject *,
|
||||
PyObject *, PyObject *);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue