From d3dacfd7a74c370d7225744b12331836fffffcec Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Fri, 27 Jan 2012 20:12:50 +0000 Subject: [PATCH] * Reverted r108194 to support PHP < 5.3. These should already be the default iterator settings. * Also made the iterator keys (e.g. in foreach) more consistent by being integers as the other backend iterators do. --- includes/filerepo/backend/FSFileBackend.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/includes/filerepo/backend/FSFileBackend.php b/includes/filerepo/backend/FSFileBackend.php index 6a579b0eac..f229577c1c 100644 --- a/includes/filerepo/backend/FSFileBackend.php +++ b/includes/filerepo/backend/FSFileBackend.php @@ -540,6 +540,7 @@ class FSFileBackendFileList implements Iterator { /** @var RecursiveIteratorIterator */ protected $iter; protected $suffixStart; // integer + protected $pos = 0; // integer /** * @param $dir string file system directory @@ -548,9 +549,8 @@ class FSFileBackendFileList implements Iterator { $dir = realpath( $dir ); // normalize $this->suffixStart = strlen( $dir ) + 1; // size of "path/to/dir/" try { - $flags = FilesystemIterator::CURRENT_AS_FILEINFO | FilesystemIterator::SKIP_DOTS; - $this->iter = new RecursiveIteratorIterator( - new RecursiveDirectoryIterator( $dir, $flags ) ); + # Get an iterator that will return leaf nodes (non-directories) + $this->iter = new RecursiveIteratorIterator( new RecursiveDirectoryIterator( $dir ) ); } catch ( UnexpectedValueException $e ) { $this->iter = null; // bad permissions? deleted? } @@ -564,7 +564,7 @@ class FSFileBackendFileList implements Iterator { } public function key() { - return $this->iter->key(); + return $this->pos; } public function next() { @@ -573,9 +573,11 @@ class FSFileBackendFileList implements Iterator { } catch ( UnexpectedValueException $e ) { $this->iter = null; } + ++$this->pos; } public function rewind() { + $this->pos = 0; try { $this->iter->rewind(); } catch ( UnexpectedValueException $e ) { -- 2.20.1