forked from BigfootDev/flatbuffers
Made reading read-only ByteBuffers work.
Also added new constructor that allows ByteBuffer reuse. Change-Id: I9c20ea96c67533066461f4e23b0d03b9b47cd068 Tested: on OS X.
This commit is contained in:
@@ -30,7 +30,7 @@ public class FlatBufferBuilder {
|
||||
int space; // Remaining space in the ByteBuffer.
|
||||
static final Charset utf8charset = Charset.forName("UTF-8");
|
||||
int minalign = 1; // Minimum alignment encountered so far.
|
||||
int[] vtable; // The vtable for the current table, null otherwise.
|
||||
int[] vtable = null; // The vtable for the current table, null otherwise.
|
||||
int object_start; // Starting offset of the current struct/table.
|
||||
int[] vtables = new int[16]; // List of offsets of all vtables.
|
||||
int num_vtables = 0; // Number of entries in `vtables` in use.
|
||||
@@ -47,6 +47,14 @@ public class FlatBufferBuilder {
|
||||
bb = newByteBuffer(new byte[initial_size]);
|
||||
}
|
||||
|
||||
// Alternative constructor allowing reuse of ByteBuffers
|
||||
public FlatBufferBuilder(ByteBuffer existing_bb) {
|
||||
bb = existing_bb;
|
||||
bb.clear();
|
||||
bb.order(ByteOrder.LITTLE_ENDIAN);
|
||||
space = bb.capacity();
|
||||
}
|
||||
|
||||
ByteBuffer newByteBuffer(byte[] buf) {
|
||||
ByteBuffer newbb = ByteBuffer.wrap(buf);
|
||||
newbb.order(ByteOrder.LITTLE_ENDIAN);
|
||||
|
||||
Reference in New Issue
Block a user