Commit c4a3e2f6 authored by Kyle Jones's avatar Kyle Jones Committed by Wouter van Oortmerssen

Always add additional space if no more is available

Change-Id: If08b2d839489d40e977de794b13584fa66ff32c1
parent 803f9bba
......@@ -198,7 +198,7 @@ func (b *Builder) Prep(size, additionalBytes int) {
alignSize &= (size - 1)
// Reallocate the buffer if needed:
for int(b.head) < alignSize+size+additionalBytes {
for int(b.head) <= alignSize+size+additionalBytes {
oldBufSize := len(b.Bytes)
b.growByteBuffer()
b.head += UOffsetT(len(b.Bytes) - oldBufSize)
......
......@@ -21,12 +21,13 @@ import (
"bytes"
"flag"
"fmt"
flatbuffers "github.com/google/flatbuffers/go"
"io/ioutil"
"os"
"reflect"
"sort"
"testing"
flatbuffers "github.com/google/flatbuffers/go"
)
var (
......@@ -479,6 +480,20 @@ func CheckByteLayout(fail func(string, ...interface{})) {
b.EndVector(2)
check([]byte{2, 0, 0, 0, 2, 1, 0, 0}) // padding
// test 3b: 11xbyte vector matches builder size
b = flatbuffers.NewBuilder(12)
b.StartVector(flatbuffers.SizeByte, 8, 1)
start := []byte{}
check(start)
for i := 1; i < 12; i++ {
b.PrependByte(byte(i))
start = append([]byte{byte(i)}, start...)
check(start)
}
b.EndVector(8)
check(append([]byte{8, 0, 0, 0}, start...))
// test 4: 1xuint16 vector
b = flatbuffers.NewBuilder(0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment