Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Closed
Description
Bug report
Bug description:
Not all usages ofPyIter_Next in the codebase comply with specified behavior:
Lines 2905 to 2919 in180d417
| /* Return next item. | |
| * | |
| * If an error occurs, return NULL. PyErr_Occurred() will be true. | |
| * If the iteration terminates normally, return NULL and clear the | |
| * PyExc_StopIteration exception (if it was set). PyErr_Occurred() | |
| * will be false. | |
| * Else return the next object. PyErr_Occurred() will be false. | |
| */ | |
| PyObject* | |
| PyIter_Next(PyObject*iter) | |
| { | |
| PyObject*item; | |
| (void)iternext(iter,&item); | |
| returnitem; | |
| } |
One example would be:
Lines 246 to 268 in180d417
| while ((key=PyIter_Next(iter))!=NULL) { | |
| value=PyObject_GetItem(other,key); | |
| if (value==NULL) { | |
| Py_DECREF(key); | |
| Py_DECREF(iter); | |
| return-1; | |
| } | |
| if (framelocalsproxy_setitem(self,key,value)<0) { | |
| Py_DECREF(key); | |
| Py_DECREF(value); | |
| Py_DECREF(iter); | |
| return-1; | |
| } | |
| Py_DECREF(key); | |
| Py_DECREF(value); | |
| } | |
| Py_DECREF(iter); | |
| return0; | |
| } |
CPython versions tested on:
CPython main branch
Operating systems tested on:
No response