Yonggang Li [Mon, 9 Oct 2017 15:40:17 +0000 (08:40 -0700)]
_Nullable cpp interface (#4451)
* add _Nullable Support for C++ interface
* add _Nullable Support for C++ interface
Wouter van Oortmerssen [Mon, 2 Oct 2017 22:41:34 +0000 (15:41 -0700)]
Improved .proto conversion.
- Allowed enums to be declared before use.
- Generalized parsing of `required`.
- Reworked escaping of namespaces.
- Escaping field names that are C++ keywords.
- Many smaller fixes.
Change-Id: Ie580de7b70dc208f676f4f71bb0d061808648b8d
Tested: on Linux.
Aaron [Fri, 6 Oct 2017 15:50:24 +0000 (08:50 -0700)]
[C++] Add explicit keyword on generated constructors for Builder structs (#4452)
* Add explicit keyword on C++ generated constructors for Builder structs
* Add missing generated code for review
Robert [Fri, 6 Oct 2017 15:34:07 +0000 (08:34 -0700)]
Python: CreateByteVector function in builder. (#4453)
Dariusz Ostolski [Thu, 5 Oct 2017 21:07:42 +0000 (23:07 +0200)]
Fix issue #4389, if field is ommitted the return type is the same for… (#4444)
* Fix issue #4389, if field is ommitted the return type is the same for python generator
* Fix issue #4389, bytes is returned when field is omitted
* Fix issue #4389, added generated python code after generator modification
Louis-Paul CORDIER [Mon, 2 Oct 2017 21:38:38 +0000 (06:38 +0900)]
Add template version for As method. (#4443)
* Add template version for As method.
* Fix compilation error on Linux.
* Fix linux issue (2).
* Linux fix (3)
* Add few tests.
Wouter van Oortmerssen [Mon, 25 Sep 2017 18:44:58 +0000 (11:44 -0700)]
Fixed TypeTable function not being inline.
Change-Id: Id335980daf909e885ed26a21b64623b78d01fb49
Tested: on OS X.
Wouter van Oortmerssen [Fri, 22 Sep 2017 21:32:07 +0000 (14:32 -0700)]
Made the parser not have any hard-coded keywords.
This prevented any keywords showing up as JSON field names, for example.
Change-Id: Ie9d0cada96778e06016ca02ca96d052410a37038
Tested: on Linux.
Wouter van Oortmerssen [Fri, 25 Aug 2017 00:44:03 +0000 (17:44 -0700)]
Added support for mini-reflection tables.
Change-Id: I83453d074685fa57bbf1c7c87b1d9392ce972085
Tested: on Linux.
endorph-soft [Thu, 21 Sep 2017 21:06:20 +0000 (06:36 +0930)]
Add constant accessors to C++ unions (#4433)
* Add constant accessors to C++ unions
* Remove redundant const pointer return type
* Update generate_code.bat to reflect generate_code.sh
* Add updated generated files
* Remove extra space from generated code
* Update generated files
* Change directory back to tests after generating code
Khem Raj [Thu, 21 Sep 2017 15:51:08 +0000 (08:51 -0700)]
Fix build with clang on big-endian targets (#4440)
* flatbuffers: Move EndianSwap template to flatbuffers/base.h
Clang complains
call to function 'EndianSwap' that is neither visible in the template definition nor found by argument-dependent lookup
return EndianSwap(t);
This seems to be due to limitation of two-phase lookup of dependent names in template definitions
Its not being found using associated namespaces therefore
it has to be made visible at the template definition site as well
Signed-off-by: Khem Raj <raj.khem@gmail.com>
* use __builtin_bswap16 when building with clang
clang pretends to be gcc 4.2.0 and therefore the code does
not use __builtin_bswap16 but tries to synthesize it
Signed-off-by: Khem Raj <raj.khem@gmail.com>
schoetbi [Thu, 14 Sep 2017 16:25:43 +0000 (18:25 +0200)]
idl_gen_json_schema.cpp: Fixed detection of enum types (#4438)
Lukas Bergdoll [Thu, 14 Sep 2017 16:22:55 +0000 (18:22 +0200)]
[C++] Fix DetachedBuffer move assignment lifetime (#4437)
* Fix DetachedBuffer move assignment lifetime
DetachedBuffer move assignment now destroys it's own content,
rather than waiting for the destructor of other.
See more under #4435
Add missing function return type
* Rename empty_assign to reset
Reset after destroy
reset() now operates on itself
Wouter van Oortmerssen [Tue, 12 Sep 2017 18:36:38 +0000 (11:36 -0700)]
Fixed .proto not being accepted as schema file.
Change-Id: I1ccd52a847930fa636d24f9490d57577b8775d08
Wouter van Oortmerssen [Thu, 7 Sep 2017 21:35:26 +0000 (14:35 -0700)]
Forgot to bump flatc version to 1.7.1
Change-Id: I480a08f445858bce3d0336c2b22da30d64f90012
rouzier [Thu, 7 Sep 2017 18:52:58 +0000 (14:52 -0400)]
Update doc (#4427)
schoetbi [Thu, 31 Aug 2017 15:56:04 +0000 (17:56 +0200)]
Every type gets additionalProperties set to "false" (#4424)
#4423
endorph-soft [Thu, 31 Aug 2017 15:54:03 +0000 (01:24 +0930)]
C++ Customise prefix/suffix of object API [Issue #4419] (#4422)
* Allow prefix/suffix of C++ Object API classes to be customised
* Address review comments
Wouter van Oortmerssen [Fri, 25 Aug 2017 18:47:19 +0000 (11:47 -0700)]
Updated C# test project.
Wouter van Oortmerssen [Fri, 25 Aug 2017 18:29:58 +0000 (11:29 -0700)]
Fixed VS memory tracking leaking into user code
Wouter van Oortmerssen [Thu, 24 Aug 2017 20:46:46 +0000 (13:46 -0700)]
Disabled numpy test in appveyor due to timeout.
It pulls in a LOT of dependencies, this will need to be done better.
Change-Id: Ib27effead194f6836facca01e9454a6037ad837a
Wouter van Oortmerssen [Thu, 24 Aug 2017 19:55:35 +0000 (12:55 -0700)]
Cleaned up namespace handling.
A Namespace object is now guaranteed unique.
This cleaned up some old workarounds and latent bugs.
Change-Id: Ic3f12d89947871b03b2c449ba51b3186f953adde
Tested: on Linux.
Bug:
21336857
Wouter van Oortmerssen [Mon, 21 Aug 2017 20:44:23 +0000 (13:44 -0700)]
Trimmed vtables of trailing zeroes.
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.
Younguk Kim [Thu, 17 Aug 2017 16:35:50 +0000 (01:35 +0900)]
Fix use of min and max when Windows.h is imported (#4411)
Wouter van Oortmerssen [Mon, 14 Aug 2017 23:36:42 +0000 (16:36 -0700)]
Noted that benchmarks are for C++
Change-Id: I12fbba7ffd2db47502a05eb06cedab49fd99c366
Wouter van Oortmerssen [Mon, 14 Aug 2017 22:34:15 +0000 (15:34 -0700)]
Explained GetRoot<Monster> vs GetMonster.
Change-Id: Ic302096c07551b5c1aff0b261a329c46964cf337
Wouter van Oortmerssen [Mon, 14 Aug 2017 21:45:29 +0000 (14:45 -0700)]
Fixed .proto -> .fbs translating type bytes incorrectly.
Change-Id: Idb607360123d12c73dd1e045305007120b12131b
Tested: on Linux.
Wouter van Oortmerssen [Mon, 14 Aug 2017 19:18:06 +0000 (12:18 -0700)]
Further grammar.md fixes: union types, idents, string constants.
Change-Id: I51db0511c52c79f2b322a1fdef798b061941887b
Wouter van Oortmerssen [Mon, 14 Aug 2017 18:58:25 +0000 (11:58 -0700)]
Fixed up grammar.md with rpc's and new scalar types.
Change-Id: Ie2965f48810bf24cccf098b69a9d471583efc3bf
Wouter van Oortmerssen [Mon, 14 Aug 2017 17:52:25 +0000 (10:52 -0700)]
Missing FieldDef initializer.
Change-Id: I5ed1f77868e201d7231102a106e08f3376b6adcf
Wouter van Oortmerssen [Mon, 14 Aug 2017 17:41:39 +0000 (10:41 -0700)]
Fixed file_identifier/extension leaking from included file.
Change-Id: I470143411e4ce6322e018a27bcc9cd40c15d9bf1
Tested: on Linux.
Wouter van Oortmerssen [Mon, 14 Aug 2017 16:25:40 +0000 (09:25 -0700)]
Cleaned up test output.
Change-Id: I4bec0e728cc162aa3f19091a0d154124ffbccdff
Wouter van Oortmerssen [Mon, 14 Aug 2017 16:22:12 +0000 (09:22 -0700)]
Fixed root_type leaking in from included files.
Change-Id: I9378e375901f8a883eaeb2182955d690c358ed4b
Tested: on Linux.
rouzier [Mon, 14 Aug 2017 15:44:56 +0000 (11:44 -0400)]
C++ Add new type vector_bool flexbuffers (#4410)
* Add new type vector_bool
* Update stl_emulation.h
Fix Is same typo
* Update stl_emulation.h
rouzier [Mon, 14 Aug 2017 15:33:38 +0000 (11:33 -0400)]
Internal doc (#4409)
* Add information about flexbuffer bool and null encoding
* Fix spelling errors
* Fix encoding example for flexbuffer map
Wouter van Oortmerssen [Fri, 11 Aug 2017 19:24:33 +0000 (12:24 -0700)]
Added VS crtdbg memory leak tracking
Wouter van Oortmerssen [Fri, 11 Aug 2017 16:28:06 +0000 (09:28 -0700)]
Added missing generated code.
Change-Id: I7201d6891f56094178656a76bf0f87cf36d12554
Kamil Rojewski [Fri, 11 Aug 2017 16:24:36 +0000 (18:24 +0200)]
Vector of unions for TS/JS and PHP (#4404)
* Eclipse ignore
* TypeScript support
* Prefixing enums
* Test results
* Merged JS and TS generators
* Fixed AppVeyor build problems
* Fixed more AppVeyor build problems
* Fixed more AppVeyor build problems
* Changed TS flag to options struct
* Storing options by value
* Removed unneeded const
* Re-export support for unions
* Uint support
* Casting bools to numbers for mutation
* TS shell tests
* Reverted generates js test file to original version
* Backing up js tests and properly generating test data
* Not importing flatbuffers for TS test generation
* Not overwriting generated js for tests
* AppVeyor test fixes
* Generating the most strict TS code possible
* Not returning null when creating vectors
* Not returning null from struct contructors
* Vector of unions for ts/js
* Sanity check for languages
* Indentation fix + output test files
* Vectors of unions for php
* Fixes to union vector handling + tests
Kamil Rojewski [Fri, 11 Aug 2017 16:19:28 +0000 (18:19 +0200)]
Copying required field to union type vector (#4407)
* Eclipse ignore
* TypeScript support
* Prefixing enums
* Test results
* Merged JS and TS generators
* Fixed AppVeyor build problems
* Fixed more AppVeyor build problems
* Fixed more AppVeyor build problems
* Changed TS flag to options struct
* Storing options by value
* Removed unneeded const
* Re-export support for unions
* Uint support
* Casting bools to numbers for mutation
* TS shell tests
* Reverted generates js test file to original version
* Backing up js tests and properly generating test data
* Not importing flatbuffers for TS test generation
* Not overwriting generated js for tests
* AppVeyor test fixes
* Generating the most strict TS code possible
* Not returning null when creating vectors
* Not returning null from struct contructors
* Copying required field to union type vector
* Removed unneccessary bool
Wouter van Oortmerssen [Thu, 10 Aug 2017 23:28:31 +0000 (16:28 -0700)]
Make flatc not silently skip schema files not ending in .fbs
Change-Id: I58463b321703b2ef0dc3f3062633909b86eca1a9
Tested: on Linux.
Wouter van Oortmerssen [Thu, 10 Aug 2017 21:22:03 +0000 (14:22 -0700)]
Make it an error if a field has the same name as a table.
Change-Id: Ie5a3bb5a3643cd48e1cc75fe170a7b8a7c2cc8ed
Tested: on Linux.
Wouter van Oortmerssen [Thu, 10 Aug 2017 18:35:58 +0000 (11:35 -0700)]
Forgot to update pom.xml in recent 1.7.1 release.
Change-Id: Ia6d6967546c0a2a5340a93e54c46d2630fff92fe
Wouter van Oortmerssen [Thu, 10 Aug 2017 18:25:13 +0000 (11:25 -0700)]
Misc documentation fixes.
Change-Id: Id7be5baba7d8a11ca050e8d94d95857406690378
Wouter van Oortmerssen [Mon, 7 Aug 2017 22:33:36 +0000 (15:33 -0700)]
Fixed clang-tidy warnings.
Change-Id: Ib94ef29254c116b60e4ff298baa2ce323ac9655c
Tested: on Linux.
Wouter van Oortmerssen [Mon, 7 Aug 2017 21:55:05 +0000 (14:55 -0700)]
Added missing generated code from past commits.
Change-Id: I43e8de5a2ac224836a79661cc03bf37ac6d509fe
Wouter van Oortmerssen [Mon, 7 Aug 2017 21:53:54 +0000 (14:53 -0700)]
Linked to Mikkel's binary format documentation.
Change-Id: I5054e37833d59bbe925cac2000a453fbee8ef54b
Wouter van Oortmerssen [Mon, 7 Aug 2017 20:24:42 +0000 (13:24 -0700)]
Public accessor for buffer size of flexbuffers::Builder
Change-Id: Iff7895aebeba9c2940e26a3edbdf2d3f1b0d9b17
rouzier [Fri, 4 Aug 2017 15:04:28 +0000 (11:04 -0400)]
[c++] Add support for boolean types in flexbuffers (#4386)
* Add support for boolean types in flexbuffers
* Simplify casting number <=> boolean
* Added comments for tests
* Add proper support for Booleans
* Bad rebase
* No special case for strings
* Removed unused test
* Simplify logic
MikkelFJ [Wed, 2 Aug 2017 15:07:43 +0000 (17:07 +0200)]
Add scalar type aliases for int8, uint8, ..., f32, f64 (#4400)
* Add type aliases
* Add generated code
* Rebase master
Kevin Rose [Tue, 1 Aug 2017 15:34:00 +0000 (10:34 -0500)]
[Python] (scalar) vector reading speedup via numpy (#4390)
* Add numpy accessor to python flatbuffers scalar vectors
* Update python tests to test numpy vector accessor
* Update appveyor CI to run Python tests, save generated code as artifact
* Update example generated python code
* Add numpy info to python usage docs
* Update test schema and python tests w/ multi-byte vector
* did not mean to push profiling code
* adding float64 numpy tests
Christian Helmich [Fri, 28 Jul 2017 17:27:51 +0000 (02:27 +0900)]
Added support for nested flatbuffers serializing to json (#4391)
* added bool for nested_flatbuffer
setting bool flag nested_flatbuffer according to attributes
setting nested type
* added JSON serialization for nested flatbuffers
* simplified lookup of nested_flatbuffer StructDef
* added nested_flatbuffer parsing workound relying on flexbuffers
* moved nested flatbuffer parsing into its own function for clarity
removed flexbuffers workound to simplify and speed up nested_flatbuffer parsing
added support for 'legacy' nested_flatbuffers, ubyte arrays
* inlined functions for nested parser init/clean since only used once
* whitespace formatting
* changed type of FieldDef.nested_flatbuffer from bool to StructDef*
removed subsequent type lookups
* removed copies of unrequired data when initializing nested parser
* applied changes requested by reviewer
* removed superfluous lookup of nested_flatbuffer field attributes
* renamed camelCased variables to snake_case
Manuel Kroiss [Thu, 27 Jul 2017 16:06:02 +0000 (17:06 +0100)]
Adding accessors for IsBlob and Blob.data (#4398)
Stewart Miles [Mon, 24 Jul 2017 22:35:16 +0000 (15:35 -0700)]
Merge pull request #4395 from stewartmiles/master
Test case for CreateVectorOfStructs() using a callback.
Stewart Miles [Mon, 24 Jul 2017 21:11:59 +0000 (14:11 -0700)]
Test case for CreateVectorOfStructs() using a callback.
Fixes issue #4392, also fixed C++98 compatible code generation in tests.
Change-Id: Ia5833026e615ad19d24a0439bdba2e3b45c5f86c
Christian Helmich [Mon, 24 Jul 2017 16:33:40 +0000 (01:33 +0900)]
forwarding IDLOptions.strict_json to flexbuffers .ToString() (#4394)
Stewart Miles [Thu, 20 Jul 2017 19:24:38 +0000 (12:24 -0700)]
Merge pull request #4383 from stewartmiles/master
C++98 (stlport) support for core FlatBuffers and FlexBuffers.
Stewart Miles [Thu, 13 Jul 2017 13:27:39 +0000 (06:27 -0700)]
C++98 (stlport) support for core FlatBuffers and FlexBuffers.
* Added internal - limited - implementation of flatbuffers::unique_ptr
for STLs that don't ship with std::unique_ptr. In C++11 and beyond
this is just an alias for std::unique_ptr.
* Aliased used type traits structs is_scalar is_floating_point is_unsigned
into flatbuffers namespace so they can be replaced in C++98 implementations.
Right now these point at stlport's TR1 implementations.
* Wrapped vector::data() in vector_data().
* Wrapped vector::emplace_back() in vector_emplace_back().
* Wrapper string::back() in string_back().
* Added variants of FlatBufferBuilder::CreateVector() and
FlatBufferBuilder::CreateVectorOfStructs() that allow the use of plain
function pointers.
Generated code has also been modified to use plain functions to build objects
rather than std::function() so all generated code will work in C++98
applications.
* Added flexbuffers::Builder::Vector(), flexbuffers::Builder::TypedVector()
and flexbuffers::Builder::Map() methods that allow the use of plain function
pointers.
* Changed Parser to internally use plain function pointers when parsing table
and vector delimiters.
* Added specializations of NumToString() for 64-bit types that aren't supported
by stringstream in stlport.
* Overloaded numeric_limits for 64-bit types not supported by stlport.
* Replaced build_apk.sh (which was broken by deprecation of the
"android" tool in the Android SDK) with build.gradle and the
appropriate gradle wrapper to build an APK.
* Switched Android build to build against all STL variants.
* Updated travis configuration to build Android test and sample.
Tested:
* Verified all tests continue to work on Linux, OSX and Android.
* Verified Travis build is green.
Change-Id: I9e634363793f85b9f141d21454b10686020a2065
schoetbi [Wed, 19 Jul 2017 15:58:48 +0000 (17:58 +0200)]
idl_parser.cpp ignores $schema in input json (#4382)
* idl_parser.cpp ignores $schema in input json
#4381
* idl_parser.cpp: Fixed ci error signed unsigned comparison
* idl_parser.cpp: replaced case insensitive search for $schema with case sensitive search
* idl_parser.cpp: Expecting a string constant after $schema
#4382
Alex Wasserman [Thu, 13 Jul 2017 15:33:32 +0000 (10:33 -0500)]
Java: Added ByteBufferFactory interface and sizedInputStream method. (#4379)
The ByteBufferFactory interface gives the user an option to specify
the method in which the internal ByteBuffer is allocated. This provides
flexibility in the type of ByteBuffer that can be used.
The sizedInputStream method is an alternative to sizedByteArray that
does not make a copy of the data in memory.
schoetbi [Mon, 10 Jul 2017 15:05:59 +0000 (17:05 +0200)]
Json schema (#4369)
* Added empty generator for json schema (idl_gen_json_schema.cpp)
#4360
* JsonSchemaGenerator: output of tables implemented
current problems:
- typenames are not correct
- array types need to be deduced
#4360
* JsonSchemaGenerator: Corrected generation of typenames
Current problems: enum types not written correctly
#4360
* JsonSchemaGenerator: Added generation of enum types
#4360
* idl_gen_json_schema.cpp: Write required properties to schema
#4360
* idl_gen_json_schema.cpp: Export Types including namespace
#4360
* idl_gen_json_schema.cpp: Fixed Json format
#4360
* idl_gen_json_schema.cpp: Formatted according to google code style
#4360
* Checked in monster_test.bfbs with changes from master
* Added idl_gen_json_schema.cpp in CMakeLists.txt
* generate_code.bat: Added generation of json schema
* Added todo.md
* generate_code.sh: Added generation of json schema
* Addressed some review issues
- removed command line arg -S
- removed new lines
- fixed codestyle in template functions
- removed usage of stringstream
- idented json schema
#4360
* removed auto in idl_gen_json_schema.cpp
* idl_gen_json_schema.cpp: changed iterator declarations to auto
#4360
* deleted todo.md
* idl_gen_json_schema.cpp: Removed keyword "override" so that vs2010 can compile
* idl_gen_json_schema.cpp: switch statement in GenType handeles all enum-members
* idl_gen_json_schema.cpp: Removed cerr output
* idl_gen_json_schema.cpp: Avoid vector copying
* idl_gen_json_schema.cpp: Fixed identation of json schema output
* idl_gen_json_schema.cpp: Do not output empty descriptions
Robbie McElrath [Mon, 26 Jun 2017 16:07:02 +0000 (09:07 -0700)]
Make inter-file cycles compile (#4364)
Andrei Stoica [Wed, 21 Jun 2017 15:26:37 +0000 (17:26 +0200)]
Make flatbuffers work with ArduinoSTL (#4357) (#4361)
*Keep legacy compatibility with StandardCplusplus lib (utility.h)
Wouter van Oortmerssen [Tue, 20 Jun 2017 16:40:10 +0000 (09:40 -0700)]
Avoiding wrong template specialization on new CreateVector
Change-Id: I0da57cc71318ea13c10b547e2dfe3a2d4f32b4d9
Tested: on OS X.
Wouter van Oortmerssen [Fri, 16 Jun 2017 23:15:02 +0000 (16:15 -0700)]
Updated version numbers to 1.7.0
Change-Id: If2802ca48b61cfa7e5ec131e2a268400523217e2
Christopher Berner [Fri, 16 Jun 2017 22:29:47 +0000 (15:29 -0700)]
Optimize CreateVector for types > 1 byte on little endian (#4355)
This gives a 10x speed up in my test, when creating a Vector of floats
Wouter van Oortmerssen [Fri, 16 Jun 2017 22:04:42 +0000 (15:04 -0700)]
Added move assignment operator to DetachedBuffer.
Change-Id: I4610946ac27d9d0d73c2fc2e4834bd2cfed88cdc
Tested: on Linux.
Wouter van Oortmerssen [Fri, 16 Jun 2017 19:30:36 +0000 (12:30 -0700)]
Adding a method to get the file identifier from a flatbuffer.
Change-Id: Ie28fd1f0b463aac23647d38921600f15c8b7c10a
Wouter van Oortmerssen [Fri, 16 Jun 2017 18:57:58 +0000 (11:57 -0700)]
Initial support for parsing (and generating) Protobuf ASCII.
Change-Id: I955b4b3eed27f26773d7dc0acceff13c88d1333d
Tested: on Linux.
Wouter van Oortmerssen [Fri, 16 Jun 2017 03:54:04 +0000 (20:54 -0700)]
Added convenient schema registry.
Change-Id: I9d71375059369fbc538d0d051d8d2885e467bf29
Tested: on Mac OS X.
Wouter van Oortmerssen [Fri, 16 Jun 2017 16:52:59 +0000 (09:52 -0700)]
Fixed missing lambda return type.
Change-Id: I48d41a240c8bf362b1f931f20a3ed9ae64f2d295
Stephen Lane-Walsh [Fri, 16 Jun 2017 16:53:53 +0000 (12:53 -0400)]
Fixed build error in Visual Studio 2017 (#4353)
flatbuffers.h(591): error C2220: warning treated as error - no 'object' file generated
flatbuffers.h(591): warning C4267: 'return': conversion from 'size_t' to 'flatbuffers::uoffset_t', possible loss of data
Lawrence Chan [Tue, 13 Jun 2017 15:50:27 +0000 (10:50 -0500)]
gRPC: fix memory leak (#4351)
SerializationTraits<T>::Deserialize _transfers_ ownership of the buffer,
so we must destroy it.
This commit also includes some misc fixes:
- Use grpc::Status::OK rather than default ctor for clarity.
- Check for a null buffer passed into Deserialize, and handle it the
same way as the protobuf deserializer.
Wouter van Oortmerssen [Tue, 6 Jun 2017 00:45:44 +0000 (17:45 -0700)]
Added (nested) FlexBuffer JSON parsing and output.
FlexBuffer parser is just 40 lines of code (on top of existing parser!).
Change-Id: Idebebadafb661ca5333f5621139031f6df3c3e1a
Tested: on Linux.
Wouter van Oortmerssen [Fri, 2 Jun 2017 23:41:22 +0000 (16:41 -0700)]
Added nested FlexBuffer parsing
Change-Id: I918b66eb5646d035e3aae675f745802eb54b03ea
Christopher Berner [Mon, 12 Jun 2017 18:23:55 +0000 (11:23 -0700)]
Fix memory leak in Message move operator (#4344)
Guillaume Giraud [Wed, 7 Jun 2017 23:58:19 +0000 (01:58 +0200)]
[cpp] Json parsing: adding support for parsing nested lists and top level lists (#4338)
* Extended json parsing capability: add support for parsing nested lists and top level lists
* Stylistic conformance with surrounding code + generalized comments
* More code tidy-up for stylistic conformance with surrounding code
* Blank lines
* Reverted changes related to top-level list parsing
* Styling: newline before else
* Taking out ProcessTableFields which is no longer needed as the top level list change was reverted.
Stephan T. Lavavej [Wed, 7 Jun 2017 23:26:06 +0000 (16:26 -0700)]
[C++] Remove std::iterator usage (#4340) (#4341)
* [C++] Remove std::iterator usage (#4340)
Inheriting from std::iterator has never been required, and it's
deprecated in C++17. It can be replaced by directly providing typedefs.
Include <iterator> for std::random_access_iterator_tag.
Note that structs default to public access control.
* [C++] Change whitespace style in typedefs.
Lawrence Chan [Wed, 7 Jun 2017 20:56:49 +0000 (15:56 -0500)]
[C++] Improve flatbuffers + gRPC integration (#4310)
* Rework flatbuffers + gRPC integration
- Introduce `flatbuffers::grpc::Message<T>`, a `grpc_slice`-backed
message buffer that handles refcounting and allows flatbuffers to
transfer ownership to gRPC efficiently. This replaces
`flatbuffers::BufferRef<T>`, which required a copy call and was also
unsafe w.r.t. buffer lifetime.
- Introduce `flatbuffers::grpc::MessageBuilder`, a gRPC-specific builder
that forces a `grpc_slice`-backed allocator and also adds some helpful
`Message<T>`-related methods.
- Update serializers accordingly (now zero-copy between flatbuffers and
gRPC).
* gRPC: verify messages by default, but allow user to override
* gRPC: fix some formatting issues
* Disable verification by default, but add helper method
* Make FlatBufferBuilder fields protected + remove vec accessor
* Use bool add_ref parameter to toggle refcount incr
* Remove unnecessary inline specifiers
* Fix formatting
* Use auto
* Remove empty lines
* Use grpc_slice helper macros
* Simplify reset code
* Disable Message copy ctor and assignment by default
* Remove unused member
* Enable gRPC verification by default
* Use auto
* Bake in message verification (remove template specialization)
* Add RoundUp func
* Consolidate gRPC message copy flag
* Make vector_downward allocations fully lazy
* Test message verification failure code/message
* Add grpctest verification test comments
* Simplify reallocate implementation
* Make initial_size a size_t
* Use ternary op for growth_policy
* Use truthiness rather than dont explicit nullptr check
* Indent preprocessor directives
* Remove grpc message copy/assignment
* Fix a few bugs
* Add gRPC example
* Add basic gRPC docs
* Use doxygen EXAMPLE_PATH + @include
* Reference example fbs in grpc docs
* Move gRPC examples into grpc/samples
* Fix pointer/reference formatting
* Use std::function rather than templated callback func
* Create fresh message builder for each request
* Use Clear() in Reset() impl
* Use FLATBUFFERS_CONSTEXPR
rufeooo [Wed, 7 Jun 2017 20:49:56 +0000 (13:49 -0700)]
Generate a C++ function for EnumValues{{ENUM_NAME}} (#4337)
* enables "for each" logic on enumeration types
vabr-g [Mon, 5 Jun 2017 17:33:04 +0000 (19:33 +0200)]
[C++] Remove std::move around a raw pointer in flatbuffers.h (#4339)
* Remove std::move around a raw pointer
Calling std::move on a raw pointer has no advantage to just copying its value. Moreover, it is confusing, because it indicates that the argument is movable in some non-trivial way (e.g., is it actually meant to be a smart pointer?). More context in https://crbug.com/729393.
* Remove the move constructor altogether
Wouter van Oortmerssen [Fri, 2 Jun 2017 22:55:02 +0000 (15:55 -0700)]
Disallowing field name same as table name.
Change-Id: I4b5d822cc4eda975949d1b7cf33674c5bbf9d4b1
Tested: on Linux.
Wouter van Oortmerssen [Fri, 2 Jun 2017 18:26:37 +0000 (11:26 -0700)]
Added test for nested FlatBuffers functionality.
Also fixed that the parsing test wasn't calling the buffer
testing function.
Change-Id: I5baae071bf0832c7797b4ef1d19d9b015e3ff5bc
Tested: on Linux.
AntonYudintsev [Fri, 2 Jun 2017 17:26:11 +0000 (20:26 +0300)]
refactor flatbuffers.h and util.h so FlexBuffers do not depend on flatbuffers.h (#4331)
FlexBuffers are actually completely unrelated to FlatBuffers and can be used separately.
However, since they utilize several utility functions from flatbuffer.h, they require this header file, which creates unreasonable dependency.
By moving those utility functions to separate base header, both libraries can use same code but still be independent
Pavel Kalinnikov [Fri, 2 Jun 2017 15:50:18 +0000 (17:50 +0200)]
Track included files in PATH-agnostic way. (#4329)
* Track included files in PATH-agnostic way.
Use full paths as keys in the map of included files. Store logical
include path as a value, in order to put it to the generated file.
* Fix tests by accepting null |include_filename|.
* Fix self-includes code generators.
Wouter van Oortmerssen [Wed, 24 May 2017 22:21:26 +0000 (15:21 -0700)]
Fixed --keep-prefix functionality.
Changing to keep include prefixes had two side effects: the main
file being parsed wasn't filtered out anymore, and include directory
paths would be added to the path in the include statement.
Also moved the include_test*.fbs files to sub directories so we
can actually test the handling of -I etc.
tested: on Linux.
Change-Id: Ibae095cea7ab0cccbac15cfb5171719f6b5cad8c
Lawrence Chan [Wed, 24 May 2017 20:55:15 +0000 (15:55 -0500)]
[C++] Improve Allocator handling (#4312)
* Improve Allocator handling
- Templatize Allocator on vector_downward, and make it own the allocator
instance so it can manage lifetimes.
- Templatize + rename FlatBufferBuilderT accordingly, and add a typedef
to FlatBufferBuilder so old code continues to work.
- Fix some issues with the release deleter
- More details in github issue #4311
* Fix constexpr for older MSVC
* Reimplement allocator improvements via inheritance
Instead of templates, use an abstract base class and some unique_ptrs to
implement the new and improved allocator.
* Fix misplaced newline
* Add missing override keyword
* Add macro for func delete to support older compilers
* Explicitly move BufferDeleter (maybe fixes VS 10?)
* Revert previous attempt at VS10 fix
* Try yet another workaround for MS 10
* Use FLATBUFFERS_NOEXCEPT macro
* Add FLATBUFFERS_OVERRIDE macro
* Fix some issues with MSVC 16 hack
* Remove dep on unique_ptr
* Update DEPRECATED macro with a message
* Sigh, no delegating ctors before c++11
* Fix simple_allocator stub
* Relax FlatBufferBuilder ctor
* Add vector_downward reset + assert in clear
* Rename DetachedBuffer to FlatBuffer + remove unnecessary deprecations
* Add flatbuffers::FlatBufferBuilder::Release()
* Address remaining allocator-improvements comments
Wouter van Oortmerssen [Mon, 22 May 2017 22:13:20 +0000 (15:13 -0700)]
Some code in the samples and docs still used old C# API.
Change-Id: I7914c88ad7b31baa7586771423069dc2b90d534f
Tested: on Linux.
Wouter van Oortmerssen [Fri, 19 May 2017 00:18:43 +0000 (17:18 -0700)]
Standardized internal path handling on Posix separators.
There were several possible bugs involving paths not being
recognized as being the same on Windows. Rather than trying
to ensure all code deals with / and \ correctly, paths now
get transformed to / on input, fixing all current and
future such bugs.
Tested: on OS X.
Kamil Rojewski [Thu, 18 May 2017 17:30:30 +0000 (19:30 +0200)]
Fix for invalid null returns (#4318)
* Eclipse ignore
* TypeScript support
* Prefixing enums
* Test results
* Merged JS and TS generators
* Fixed AppVeyor build problems
* Fixed more AppVeyor build problems
* Fixed more AppVeyor build problems
* Changed TS flag to options struct
* Storing options by value
* Removed unneeded const
* Re-export support for unions
* Uint support
* Casting bools to numbers for mutation
* TS shell tests
* Reverted generates js test file to original version
* Backing up js tests and properly generating test data
* Not importing flatbuffers for TS test generation
* Not overwriting generated js for tests
* AppVeyor test fixes
* Generating the most strict TS code possible
* Not returning null when creating vectors
* Not returning null from struct contructors
sfariv [Thu, 18 May 2017 16:32:04 +0000 (09:32 -0700)]
added check for presence of required fields. (flatc) c++ (#4316)
* added check for presence of required fields.
* updates to resolve Travis CI build error.
* fixes for resolving appveyor build errors.
* fixes for resolving appveyor build errors.
* fixes for resolving appveyor build errors.
* updates per aardappel's comments.
* updated a variable's name.
* updates per aardappel's comments.
schoetbi [Tue, 16 May 2017 21:28:34 +0000 (23:28 +0200)]
C#: Added <autogenerated> in cs generator file header comment (#4291)
* Added <autogenerated> in cs generator file header comment
#4287
* CS: Added xml-correct file header comment including "<auto-generated>...</auto-generated>"
code_generators.cpp: FlatBuffersGeneratedWarning() function replaced by compile time constant "GeneratedWarning"
also removed extra newlines at end of GeneratedWarning to be able to generate a xml well formed file comment for cs files
#4291
* code_generators: Changed static string GeneratedWarning back to function FlatBuffersGeneratedWarning()
#4291
* Added modified Unit-Test files
#4291
* idl_gen_general: Add autogenerated only in C# code
#4291
Wouter van Oortmerssen [Mon, 15 May 2017 23:57:39 +0000 (16:57 -0700)]
Made root test path configurable.
Change-Id: I9629a7648f0c3346c4724ca8938fed47d7828018
Tested: on Linux.
Wouter van Oortmerssen [Mon, 15 May 2017 20:40:19 +0000 (13:40 -0700)]
Updated tutorial with a vector of structs example.
Since it wasn't documented and very different from a vector of
tables, this has caused a lot of confusion in the past.
Change-Id: Iab47c61b55c19abe5c4f25c86d71335a6b6321ca
Wouter van Oortmerssen [Fri, 12 May 2017 22:58:26 +0000 (15:58 -0700)]
Made codegen always output a file, even on an empty schema.
Previously, we had a check to simply skip such files, but this
tends to make build systems unhappy.
This only affects C++ and JS, since other language output per-class
files.
Change-Id: I54224642725bbafb9f6e1654ed3693e62ca9f7d7
Tested: on Linux.
Lawrence Chan [Fri, 12 May 2017 21:36:35 +0000 (16:36 -0500)]
[C++] Fix code gen indentation when empty Print (#4313)
* Fix C++ code gen indentation when empty Print
* Also commit modified tests/monster_test.bfbs
akamat-ibm [Fri, 12 May 2017 17:12:19 +0000 (22:42 +0530)]
Adding support for s390x (#4297)
* changes to support s390x
* added flag for s390x
* Adding support for Linux s390x
Per Grön [Fri, 12 May 2017 16:48:17 +0000 (18:48 +0200)]
C++/Go: Update gRPC related code to work with gRPC 1.3+ (#4305)
* Don't fail the build on unused parameters
gRPC headers have unused parameters so this breaks the test build.
* Pull in updated compiler files from gRPC
There have been some API breaks in gRPC lately. This commit
pulls in the most recent version of the files in this repo
that are just copied from gRPC.
* Modify the gRPC files so that they can work with Flatbuffers
The files taken from gRPC do not work out-of-the-box with Flatbuffers.
This commit modifies them so that they work. Hopefully this commit
will be able to serve as a guide or maybe even be cherry-picked on
top of new versions of those files as newer versions from gRPC are
pulled in.
* Adjust the rest of Flatbuffers to work with the new gRPC
* Change idl_gen_grpc.cpp to work with the new API
* Add missing #include in flatbuffers/grpc.h
* Run tests/generate_code.sh and check in the results
* Don't link with grpc++_unsecure and (secure) grpc. That's just weird
* Revert unrelated JS/TS test changes
* Simplify compiler/config.h
There is no need to import this file from gRPC. In fact, it probably
makes sense to not do so, since it seems to be intended to have
project specific configuration in it.
* Don't emit C++ types in the Go gRPC code generator
* Don't emit C++ #includes in generated gRPC code
Before this PR, there was a Go-specific additional_includes method
in schema_interface.h, which is shared with the gRPC repo. The
additional parameter to FlatBufFile in idl_gen_grpc.cpp makes that
unnecessary, which means we need less Flatbuffer-specific changes
in gRPC.
Wouter van Oortmerssen [Thu, 11 May 2017 01:04:53 +0000 (18:04 -0700)]
Reverting part of PR #4286
This is because it trips up the Closure compiler with errors like:
ERROR - assignment to property bb of SomeTable
found : undefined
required: (flatbuffers.ByteBuffer|null)
this.bb = undefined;
^^^^^^^^^^^^^^^^^^^
Change-Id: Iaf032b5249ec655e151331e81532e549c12bcd78
Wouter van Oortmerssen [Thu, 11 May 2017 01:00:27 +0000 (18:00 -0700)]
Removed unnecessary check for Offset in AssertScalarT()
This will avoid it accidentally accepting structs of size 4.
Change-Id: I251285ae1e4bffb859367dcf89562741a3980bba
Tested: on Linux.
Wouter van Oortmerssen [Thu, 11 May 2017 00:21:47 +0000 (17:21 -0700)]
Added error message for union values out of range.
Change-Id: I481afcde6a554d1cad519ff95acac7f38a7f4ee5
Tested: on Linux.