Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
* 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
|
|
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.
|
|
+ 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.
|
|
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.
|
|
Big speed boost for the typical use case of building with strings.
|
|
Go speed improvements
|
|
|
|
|
|
|
|
Change-Id: If08b2d839489d40e977de794b13584fa66ff32c1
|
|
Add the function `Reset` to the Builder, which facilitates reuse of the
underlying byte slice.
|
|
Builder has a new CreateByteString function that writes a
null-terimnated byte slice to the buffer. This results in zero
allocations for writing strings.
|
|
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
|
|
Change-Id: Iac5894fd8f56da7e420714558a94d63d4fea2d72
|
|
Java patch with same purpose:
cdb0dca39d683d577caa7fde21a1b6db9aa64734
Change-Id: I57d268cc0064843779eb7812a9e69326d9ab2498
Tested: on Darwin
|
|
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
|