summaryrefslogtreecommitdiffstats
path: root/Objects/iterobject.c
Commit message (Collapse)AuthorAgeFilesLines
* Patch #427190: Implement and use METH_NOARGS and METH_O.Martin v. Löwis2001-08-161-2/+2
|
* Merge of descr-branch back into trunk.Tim Peters2001-08-021-16/+18
|
* GC for iterator objects.Neil Schemenauer2001-07-121-6/+29
|
* Discard a misleading comment about iter_iternext().Guido van Rossum2001-05-011-1/+0
|
* Mondo changes to the iterator stuff, without changing how Python codeGuido van Rossum2001-04-231-21/+63
| | | | | | | | | | | | | | | | | | | | | | | | sees it (test_iter.py is unchanged). - Added a tp_iternext slot, which calls the iterator's next() method; this is much faster for built-in iterators over built-in types such as lists and dicts, speeding up pybench's ForLoop with about 25% compared to Python 2.1. (Now there's a good argument for iterators. ;-) - Renamed the built-in sequence iterator SeqIter, affecting the C API functions for it. (This frees up the PyIter prefix for generic iterator operations.) - Added PyIter_Check(obj), which checks that obj's type has a tp_iternext slot and that the proper feature flag is set. - Added PyIter_Next(obj) which calls the tp_iternext slot. It has a somewhat complex return condition due to the need for speed: when it returns NULL, it may not have set an exception condition, meaning the iterator is exhausted; when the exception StopIteration is set (or a derived exception class), it means the same thing; any other exception means some other error occurred.
* Adding iterobject.[ch], which were accidentally not added. Sorry\!Guido van Rossum2001-04-201-0/+188