You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2012/03/31 23:33:19 UTC
svn commit: r1307910 - in
/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store:
BufferedIndexInput.java ByteArrayDataInput.java DataInput.java
Author: uschindler
Date: Sat Mar 31 21:33:19 2012
New Revision: 1307910
URL: http://svn.apache.org/viewvc?rev=1307910&view=rev
Log:
LUCENE-3738: Simplification of unrolled vint code
Modified:
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/BufferedIndexInput.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/ByteArrayDataInput.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/DataInput.java
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/BufferedIndexInput.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/BufferedIndexInput.java?rev=1307910&r1=1307909&r2=1307910&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/BufferedIndexInput.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/BufferedIndexInput.java Sat Mar 31 21:33:19 2012
@@ -199,17 +199,17 @@ public abstract class BufferedIndexInput
public final int readVInt() throws IOException {
if (5 <= (bufferLength-bufferPosition)) {
byte b = buffer[bufferPosition++];
+ if (b >= 0) return b;
int i = b & 0x7F;
- if ((b & 0x80) == 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7F) << 7;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7F) << 14;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7F) << 21;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
// Warning: the next ands use 0x0F / 0xF0 - beware copy/paste errors:
i |= (b & 0x0F) << 28;
@@ -224,32 +224,32 @@ public abstract class BufferedIndexInput
public final long readVLong() throws IOException {
if (9 <= bufferLength-bufferPosition) {
byte b = buffer[bufferPosition++];
+ if (b >= 0) return b;
long i = b & 0x7FL;
- if ((b & 0x80) == 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 7;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 14;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 21;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 28;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 35;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 42;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 49;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = buffer[bufferPosition++];
i |= (b & 0x7FL) << 56;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
throw new IOException("Invalid vLong detected (negative values disallowed)");
} else {
return super.readVLong();
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/ByteArrayDataInput.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/ByteArrayDataInput.java?rev=1307910&r1=1307909&r2=1307910&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/ByteArrayDataInput.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/ByteArrayDataInput.java Sat Mar 31 21:33:19 2012
@@ -102,17 +102,17 @@ public final class ByteArrayDataInput ex
@Override
public int readVInt() {
byte b = bytes[pos++];
+ if (b >= 0) return b;
int i = b & 0x7F;
- if ((b & 0x80) == 0) return i;
b = bytes[pos++];
i |= (b & 0x7F) << 7;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7F) << 14;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7F) << 21;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
// Warning: the next ands use 0x0F / 0xF0 - beware copy/paste errors:
i |= (b & 0x0F) << 28;
@@ -123,32 +123,32 @@ public final class ByteArrayDataInput ex
@Override
public long readVLong() {
byte b = bytes[pos++];
+ if (b >= 0) return b;
long i = b & 0x7FL;
- if ((b & 0x80) == 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 7;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 14;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 21;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 28;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 35;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 42;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 49;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = bytes[pos++];
i |= (b & 0x7FL) << 56;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
throw new RuntimeException("Invalid vLong detected (negative values disallowed)");
}
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/DataInput.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/DataInput.java?rev=1307910&r1=1307909&r2=1307910&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/DataInput.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/store/DataInput.java Sat Mar 31 21:33:19 2012
@@ -94,17 +94,17 @@ public abstract class DataInput implemen
return i;
*/
byte b = readByte();
+ if (b >= 0) return b;
int i = b & 0x7F;
- if ((b & 0x80) == 0) return i;
b = readByte();
i |= (b & 0x7F) << 7;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7F) << 14;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7F) << 21;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
// Warning: the next ands use 0x0F / 0xF0 - beware copy/paste errors:
i |= (b & 0x0F) << 28;
@@ -135,32 +135,32 @@ public abstract class DataInput implemen
return i;
*/
byte b = readByte();
+ if (b >= 0) return b;
long i = b & 0x7FL;
- if ((b & 0x80) == 0) return i;
b = readByte();
i |= (b & 0x7FL) << 7;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7FL) << 14;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7FL) << 21;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7FL) << 28;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7FL) << 35;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7FL) << 42;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7FL) << 49;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
b = readByte();
i |= (b & 0x7FL) << 56;
- if ((b & 0x80) == 0) return i;
+ if (b >= 0) return i;
throw new IOException("Invalid vLong detected (negative values disallowed)");
}