Lines Matching defs:iterator
5593 PyObject *iterator = NULL, *item;
5595 iterator = PyObject_GetIter(mask);
5596 if (iterator == NULL)
5608 while ((item = PyIter_Next(iterator))) {
5612 "expected an iterator of ints, "
5613 "but iterator yielded %R",
5655 Py_CLEAR(iterator);
5667 Py_XDECREF(iterator);
11147 "scandir(path='.') -> iterator of DirEntry objects for given path");
11692 ScandirIterator_is_closed(ScandirIterator *iterator)
11694 return iterator->handle == INVALID_HANDLE_VALUE;
11698 ScandirIterator_closedir(ScandirIterator *iterator)
11700 HANDLE handle = iterator->handle;
11705 iterator->handle = INVALID_HANDLE_VALUE;
11712 ScandirIterator_iternext(ScandirIterator *iterator)
11714 WIN32_FIND_DATAW *file_data = &iterator->file_data;
11718 /* Happens if the iterator is iterated twice, or closed explicitly */
11719 if (iterator->handle == INVALID_HANDLE_VALUE)
11723 if (!iterator->first_time) {
11725 success = FindNextFileW(iterator->handle, file_data);
11730 path_error(&iterator->path);
11734 iterator->first_time = 0;
11739 entry = DirEntry_from_find_data(&iterator->path, file_data);
11749 ScandirIterator_closedir(iterator);
11756 ScandirIterator_is_closed(ScandirIterator *iterator)
11758 return !iterator->dirp;
11762 ScandirIterator_closedir(ScandirIterator *iterator)
11764 DIR *dirp = iterator->dirp;
11769 iterator->dirp = NULL;
11777 ScandirIterator_iternext(ScandirIterator *iterator)
11784 /* Happens if the iterator is iterated twice, or closed explicitly */
11785 if (!iterator->dirp)
11791 direntp = readdir(iterator->dirp);
11797 path_error(&iterator->path);
11806 entry = DirEntry_from_posix_info(&iterator->path, direntp->d_name,
11821 ScandirIterator_closedir(iterator);
11849 ScandirIterator_finalize(ScandirIterator *iterator)
11856 if (!ScandirIterator_is_closed(iterator)) {
11857 ScandirIterator_closedir(iterator);
11859 if (PyErr_ResourceWarning((PyObject *)iterator, 1,
11860 "unclosed scandir iterator %R", iterator)) {
11863 PyErr_WriteUnraisable((PyObject *) iterator);
11868 path_cleanup(&iterator->path);
11875 ScandirIterator_dealloc(ScandirIterator *iterator)
11877 if (PyObject_CallFinalizerFromDealloc((PyObject *)iterator) < 0)
11880 Py_TYPE(iterator)->tp_free((PyObject *)iterator);
11946 ScandirIterator *iterator;
11954 iterator = PyObject_New(ScandirIterator, &ScandirIteratorType);
11955 if (!iterator)
11957 memset(&iterator->path, 0, sizeof(path_t));
11958 iterator->path.function_name = "scandir";
11959 iterator->path.nullable = 1;
11962 iterator->handle = INVALID_HANDLE_VALUE;
11964 iterator->dirp = NULL;
11968 path_converter, &iterator->path))
11972 iterator->first_time = 1;
11974 path_strW = join_path_filenameW(iterator->path.wide, L"*.*");
11979 iterator->handle = FindFirstFileW(path_strW, &iterator->file_data);
11984 if (iterator->handle == INVALID_HANDLE_VALUE) {
11985 path_error(&iterator->path);
11989 if (iterator->path.narrow)
11990 path = iterator->path.narrow;
11996 iterator->dirp = opendir(path);
11999 if (!iterator->dirp) {
12000 path_error(&iterator->path);
12005 return (PyObject *)iterator;
12008 Py_DECREF(iterator);