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++];
}
}