}
public void writeBinary(ByteBuffer bin) throws TException {
- int length = bin.limit() - bin.position() - bin.arrayOffset();
+ int length = bin.limit() - bin.position();
writeI32(length);
trans_.write(bin.array(), bin.position() + bin.arrayOffset(), length);
}
* Write a byte array, using a varint for the size.
*/
public void writeBinary(ByteBuffer bin) throws TException {
- int length = bin.limit() - bin.position() - bin.arrayOffset();
+ int length = bin.limit() - bin.position();
writeBinary(bin.array(), bin.position() + bin.arrayOffset(), length);
}
}
internalTestBinaryField(b);
}
+
+ if (canBeUsedNaked()) {
+ byte[] data = {1, 2, 3, 4, 5, 6};
+
+ TMemoryBuffer buf = new TMemoryBuffer(0);
+ TProtocol proto = getFactory().getProtocol(buf);
+ ByteBuffer bb = ByteBuffer.wrap(data);
+ bb.get();
+ proto.writeBinary(bb.slice());
+ assertEquals(ByteBuffer.wrap(data, 1, 5), proto.readBinary());
+ }
}
public void testString() throws Exception {