You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by mi...@apache.org on 2009/07/15 22:21:53 UTC

svn commit: r794399 - /lucene/java/trunk/src/java/org/apache/lucene/search/DocIdSetIterator.java

Author: mikemccand
Date: Wed Jul 15 20:21:53 2009
New Revision: 794399

URL: http://svn.apache.org/viewvc?rev=794399&view=rev
Log:
LUCENE-1614: if a DISI doesn't implement advance, emulate it using skipTo

Modified:
    lucene/java/trunk/src/java/org/apache/lucene/search/DocIdSetIterator.java

Modified: lucene/java/trunk/src/java/org/apache/lucene/search/DocIdSetIterator.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/search/DocIdSetIterator.java?rev=794399&r1=794398&r2=794399&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/search/DocIdSetIterator.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/search/DocIdSetIterator.java Wed Jul 15 20:21:53 2009
@@ -142,8 +142,10 @@
    * @since 2.9
    */
   public int advance(int target) throws IOException {
-    while (nextDoc() < target) {}
-    return doc;
+    if (target == NO_MORE_DOCS) {
+      return doc = NO_MORE_DOCS;
+    }
+    return doc = skipTo(target) ? doc() : NO_MORE_DOCS;
   }
 
 }