diff --git a/java/flatbuffers/FlatBufferBuilder.java b/java/flatbuffers/FlatBufferBuilder.java index 44f201bab..c6864223a 100755 --- a/java/flatbuffers/FlatBufferBuilder.java +++ b/java/flatbuffers/FlatBufferBuilder.java @@ -57,7 +57,9 @@ public class FlatBufferBuilder { ByteBuffer growByteBuffer(ByteBuffer bb) { byte[] old_buf = bb.array(); int old_buf_size = old_buf.length; - int new_buf_size = old_buf_size * 2; + if ((old_buf_size & 0xC0000000) != 0) + throw new AssertionError("FlatBuffers: cannot grow buffer beyond 2 gigabytes."); + int new_buf_size = old_buf_size << 1; byte[] new_buf = new byte[new_buf_size]; System.arraycopy(old_buf, 0, new_buf, new_buf_size - old_buf_size, old_buf_size); ByteBuffer nbb = newByteBuffer(new_buf); diff --git a/src/idl_gen_java.cpp b/src/idl_gen_java.cpp index d68932c9d..554794fae 100755 --- a/src/idl_gen_java.cpp +++ b/src/idl_gen_java.cpp @@ -255,7 +255,7 @@ static void GenStruct(StructDef &struct_def, code += "obj.__init("; code += field.value.type.struct_def->fixed ? "o + bb_pos" - : "__indirect(o + i)"; + : "__indirect(o + bb_pos)"; code += ", bb) : null"; } break;