summaryrefslogtreecommitdiff
path: root/go/builder.go
AgeCommit message (Collapse)AuthorFilesLines
2018-07-23go: do not clobber minalign when we create objects (#4834)Robert1-1/+0
2018-04-30Addition of Go FinishWithFileIdentifier (#4720)husobee1-3/+23
* Addition of Go FinishWithFileIdentifier, allows for Go flatbuffer data to contain a file identifier * adding panic as per review if fileIdentifier does not match length, letting prep pad the file identifier * updated error message to not use fmt.Sprintf * using minalign for alignment for file identifier
2017-08-24Trimmed vtables of trailing zeroes.Wouter van Oortmerssen1-0/+5
This is something the format supports, but none of the builders were doing. Can save 10-20% on FlatBuffer binary size! Also fixed the Go tests. Change-Id: I616c56ce9bbcfcaee23aa24f0532fcb60b6a8c75 Tested: on Linux.
2015-11-11Improve Builder user interface.rw1-29/+73
+ Add state to the Builder object to track if we are inside a table, and if we are finished building the buffer. + Use this data to check that a buffer is being built correctly. + Panic if a buffer is not being built correctly. + Test that the panics happen as expected. Based on d236dea13d2fdb9ad596679868eb4204c1562151.
2015-06-24Panic when nesting strings. Test panic scenarios.rw1-8/+17
Also add a new `insideObject` boolean to the Builder to track whether an object is currently being constructed. This fixes a bug with objects that have zero fields.
2015-05-20Go: CreateString now needs zero allocs.rw1-1/+9
Big speed boost for the typical use case of building with strings.
2015-05-12Merge pull request #165 from rw/go-fasterRobert1-13/+51
Go speed improvements
2015-05-09invoke many fewer growth eventsrw1-7/+4
2015-05-09gofmtrw1-2/+2
2015-05-09remove remaining allocs during buildrw1-6/+24
2015-04-06Always add additional space if no more is availableKyle Jones1-1/+1
Change-Id: If08b2d839489d40e977de794b13584fa66ff32c1
2015-04-02Reduce allocations when reusing a Builder.rw1-6/+25
Add the function `Reset` to the Builder, which facilitates reuse of the underlying byte slice.
2015-04-02Reduce allocations when building strings.rw1-4/+8
Builder has a new CreateByteString function that writes a null-terimnated byte slice to the buffer. This results in zero allocations for writing strings.
2015-03-11Add CreateByteVector function to Go's builderBen Harper1-0/+12
This function gets around the inefficiency of populating a [ubyte] vector byte by byte. Since ubyte vectors are probably the most commonly used type of generic byte buffer, this seems like a worthwhile thing to create a fast path for. Benchmarks show a 6x improvement in throughput on x64. There is a new test verifying the functionality of the function. Change-Id: I82e0228ae0f815dd7ea89bf168b8c1925f3ce0d7
2014-10-29Fix a build error on 32 bit goLuna1-1/+1
Change-Id: Iac5894fd8f56da7e420714558a94d63d4fea2d72
2014-09-04Fixed possible alignment issue in Gorw1-1/+2
Java patch with same purpose: cdb0dca39d683d577caa7fde21a1b6db9aa64734 Change-Id: I57d268cc0064843779eb7812a9e69326d9ab2498 Tested: on Darwin
2014-07-21Port FlatBuffers to Go.rw1-0/+635
Implement code generation and runtime library for Go, derived from the Java implementation. Additionally, the test suite verifies: - the exact bytes in the Builder buffer during object construction, - vtable deduplication, and - table construction, via a fuzzer derived from the C++ implementation. Change-Id: Ib95a019c684891def2b50281e570b4843fea7baa