Browse Source

Merge branch 'github/pr/182'

Daniele Alessandri 10 years ago
parent
commit
45da0fca55
1 changed files with 12 additions and 10 deletions
  1. 12 10
      lib/Predis/Collection/Iterator/CursorBasedIterator.php

+ 12 - 10
lib/Predis/Collection/Iterator/CursorBasedIterator.php

@@ -165,16 +165,18 @@ abstract class CursorBasedIterator implements Iterator
      */
     public function next()
     {
-        if (!$this->elements && $this->fetchmore) {
-            $this->fetch();
-        }
-
-        if ($this->elements) {
-            $this->extractNext();
-        } elseif ($this->cursor) {
-            $this->next();
-        } else {
-            $this->valid = false;
+        tryFetch: {
+            if (!$this->elements && $this->fetchmore) {
+                $this->fetch();
+            }
+
+            if ($this->elements) {
+                $this->extractNext();
+            } elseif ($this->cursor) {
+                goto tryFetch;
+            } else {
+                $this->valid = false;
+            }
         }
     }