Unions own the NativeTable* value member because they need to destroy them
when the Union goes out of scope. Currently, the data is destroyed by calling
delete, which means that the member needs to be allocated with new. However,
making the allocation the responsibility of the client and the destruction
the responsibility of the Union can lead to potential errors. Adding a
Set function will ensure that the memory is allocated correctly so that it
can be deleted later.
From cl/142161569.
Change-Id: I4605f26d2749164819bfae0140e5fae08442b50a
* support for grpc golang
* refactored grpc go generator
* added grpc-go test and refactored
* refactored idl_gen_grpc.cpp
* fixed grpc generate method name
* refactored flatc and fixed line length issue
* added codec to go lib and fixed formatting issues
* fixed spacing issues
The following changes have been made to the C++ codegen to enable writing generic code
that uses the Table and NativeTable types.
- Adds TableType and NativeTableType typedefs to NativeTable and Table structs.
- Adds GetFullyQualifiedName() to NativeTables if --gen-name-strings is set.
- Adds a static Pack function to Tables that simply calls the global CreateX functions.
See cr/140391505 as an example of improved usage.
From cl/140529288.
Change-Id: Idec137c16129e15c1783f94fabdcea24aeeaaef6
Introduce a "native_inline" attribute that can be applied on fields that are structs.
This results in NativeTable code generation that sets the struct "inline" rather than
storing it in a pointer.
From cl/140527470.
Change-Id: I208724f552b8b921b20923e0bf82f42cb3582416
* Java: emit "signed" equivalent of unsigned default value in generated code and add "L" suffix to long default value.
* Updated generated code
* Only convert ulong to "signed" equivalent. ubyte and ushort don't need specific handling as "user facing" type is int. uint need 'L' suffix as "user facing" type is long.
* Added missing cast to primitive type of default value which is in "user facing" type in builder.add<type>() calls.
* Do not cast default value to actual type in C#.
These are useful for streaming FlatBuffers. The functionality
ensures proper alignment of the whole buffer.
Tested: on OS X.
Bug: 27123865
Change-Id: Ic7d75a618c1bb470ea44c4dcf202ff71f2b3f4f1
Signed-off-by: Wouter van Oortmerssen <wvo@google.com>
This allows hashed string fields to be used for lookup of any
C++ objects, a pointer to which are then stored in the object
besides the original hash for easy access.
Change-Id: I2247a13c349b905f1c54660becde2c818ad23e97
Tested: on Linux.
Bug: 30204449
* Fix flatc generating incorrect java/c# code for namespace_test2.fbs. In code for TableInC, method referToA2() returned type SecondTableInA instead of NamespaceA.SecondTableInA.
* Updated generated code.
* Fixed indendation.
* Generate type traits for unions to map a type to the corresponding union enum value.
* Fixed break with union enum type traits when type is in a namespace.
* Fixed spacing and variable names in type traits generation to match style guidelines.
* Fixed spacing in type traits generation to match style guidelines.
* Regenerated test schema header.
It is a common practice to put all the compiled classes into a
dedicated folder in order to:
- avoid to mix the code and the complied classes
- to allow a simple way to remove the complied classes
Add log of java version in order to make it explicit to the end user.
It is a common practice to put all the compiled classes into a
dedicated folder in order to:
- void to mixing the code and the complied classes
- to allow a simple way to remove the complied classes
Similar to what protobufs does with its `Message` interface, introduce here such interface and create a generic `GetRootAs` method to deserialize a flatbuffer.
They were overloaded, but also had default arguments, so would
become ambiguous when used with few arguments.
Change-Id: Ifac7f3ea3a6391d971dfeda8e33129c8c38d6f12
Tested: on Linux.