You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2012/07/04 12:32:52 UTC

svn commit: r1357217 - /lucene/dev/branches/pforcodec_3892/lucene/core/src/java/org/apache/lucene/codecs/intblock/FixedIntBlockIndexInput.java

Author: mikemccand
Date: Wed Jul  4 10:32:51 2012
New Revision: 1357217

URL: http://svn.apache.org/viewvc?rev=1357217&view=rev
Log:
tighten up FixedIntBlockIndexInput

Modified:
    lucene/dev/branches/pforcodec_3892/lucene/core/src/java/org/apache/lucene/codecs/intblock/FixedIntBlockIndexInput.java

Modified: lucene/dev/branches/pforcodec_3892/lucene/core/src/java/org/apache/lucene/codecs/intblock/FixedIntBlockIndexInput.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/pforcodec_3892/lucene/core/src/java/org/apache/lucene/codecs/intblock/FixedIntBlockIndexInput.java?rev=1357217&r1=1357216&r2=1357217&view=diff
==============================================================================
--- lucene/dev/branches/pforcodec_3892/lucene/core/src/java/org/apache/lucene/codecs/intblock/FixedIntBlockIndexInput.java (original)
+++ lucene/dev/branches/pforcodec_3892/lucene/core/src/java/org/apache/lucene/codecs/intblock/FixedIntBlockIndexInput.java Wed Jul  4 10:32:51 2012
@@ -77,19 +77,17 @@ public abstract class FixedIntBlockIndex
 
   private static class Reader extends IntIndexInput.Reader {
     private final IndexInput in;
+    private final BlockReader blockReader;
+    private final int blockSize;
+    private final int[] pending;
 
-    protected final int[] pending;
-    int upto;
-
+    private int upto;
     private boolean seekPending;
     private long pendingFP;
-    private int pendingUpto;
-    private long lastBlockFP;
-    private final BlockReader blockReader;
-    private final int blockSize;
+    private long lastBlockFP = -1;
 
     public Reader(final IndexInput in, final int[] pending, final BlockReader blockReader)
-    throws IOException {
+      throws IOException {
       this.in = in;
       this.pending = pending;
       this.blockSize = pending.length;
@@ -98,33 +96,28 @@ public abstract class FixedIntBlockIndex
     }
 
     void seek(final long fp, final int upto) {
-      pendingFP = fp;
-      pendingUpto = upto;
-      seekPending = true;
-    }
-
-    private void maybeSeek() throws IOException {
-      if (seekPending) {
-        if (pendingFP != lastBlockFP) {
-          // need new block
-          in.seek(pendingFP);
-          lastBlockFP = pendingFP;
-          blockReader.readBlock();
-        }
-        upto = pendingUpto;
-        seekPending = false;
+      assert upto < blockSize;
+      if (seekPending || fp != lastBlockFP) {
+        pendingFP = fp;
+        seekPending = true;
       }
+      this.upto = upto;
     }
 
     @Override
     public int next() throws IOException {
-      this.maybeSeek();
-      if (upto == blockSize) {
+      if (seekPending) {
+        // Seek & load new block
+        in.seek(pendingFP);
+        lastBlockFP = pendingFP;
+        blockReader.readBlock();
+        seekPending = false;
+      } else if (upto == blockSize) {
+        // Load new block
         lastBlockFP = in.getFilePointer();
         blockReader.readBlock();
         upto = 0;
       }
-
       return pending[upto++];
     }
   }