dweiss commented on a change in pull request #348:
URL: https://github.com/apache/lucene/pull/348#discussion_r720782981



##########
File path: 
lucene/core/src/java/org/apache/lucene/store/ByteBuffersDataInput.java
##########
@@ -103,6 +103,24 @@ public byte readByte() throws EOFException {
     }
   }
 
+  @Override
+  public short readShort() throws IOException {
+    // TODO: use ByteBuffer.getShort

Review comment:
       + add an assertion somewhere ensuring proper byte order on all blocks?

##########
File path: 
lucene/core/src/java/org/apache/lucene/codecs/MultiLevelSkipListReader.java
##########
@@ -319,6 +320,27 @@ public void readBytes(byte[] b, int offset, int len) {
       pos += len;
     }
 
+    @Override
+    public short readShort() throws IOException {
+      short value = (short) BitUtil.VH_LE_SHORT.get(pos);
+      pos += Short.BYTES;
+      return value;
+    }
+
+    @Override
+    public int readInt() throws IOException {
+      int value = (int) BitUtil.VH_LE_INT.get(pos);
+      pos += Integer.BYTES;
+      return value;
+    }
+
+    @Override
+    public long readLong() throws IOException {

Review comment:
       All multibyte-reading implementations with position increment after the 
read suffer from the same subtle issue: imagine you're at file length-3 bytes 
offset and trying to read an int: readInt() would fail but a subsequent 
readByte() or readShort() would succeed. I'm not sure if we need to make it a 
contract that the bytes are always consumed by readXYZ but if we don't then 
it'd be good to document this somewhere (even as an "unspecified behavior on 
insufficient bytes").




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to