Commit Graph

700 Commits

Author SHA1 Message Date
Denis Blank 72aa85a759 [C++] Rare bad buffer content alignment if sizeof(T) != alignof(T) (#7520)
* [C++] Add a failing unit test for #7516 (Rare bad buffer content alignment if sizeof(T) != alignof(T))

* [C++] Fix final buffer alignment when using an array of structs
* A struct can have an arbitrary size and therefore sizeof(struct) == alignof(struct)
  does not hold anymore as for value primitives.
* This patch fixes this by introducing alignment parameters to various
  CreateVector*/StartVector calls.
* Closes #7516
2022-09-21 11:05:05 -07:00
Derek Bailey 89b1f5aa1b remove travis config (#7522)
* remove travis config

* remove more travis and appveyor stuff

* remove appveyor specific things
2022-09-10 12:36:51 -07:00
Derek Bailey 06c5c7ed0b FlatBuffers Version 2.0.8 (#7492) 2022-08-29 20:43:36 -07:00
Derek Bailey b190ce11b0 Verifier Refinements (#7490) 2022-08-29 19:21:42 -07:00
Casper 41d9add7ef C++: Add option to skip verifying nested flatbuffers (#7489)
* C++: Add option to skip verifying nested flatbuffers

Additionally, add an options struct to the verifier for those
who prefer designated initializers to default arguments. The former
constructor is defined in terms of the latter because in old c++,
having default values for members removes list initialization, making
defining constructors in the other way a lot more challenging to write.

* fixes

* fmt

* formatting, and remove an argument

* fix

Co-authored-by: Casper Neo <cneo@google.com>
Co-authored-by: Derek Bailey <derekbailey@google.com>
2022-08-29 16:25:57 -07:00
sssooonnnggg 6a87427540 [C++] support native_inline attribute for vector of tables (#7479) 2022-08-29 12:48:10 -07:00
Derek Bailey b86387442e Fix typos (#7483) 2022-08-26 14:35:21 -07:00
Derek Bailey e2eb5ee670 Include <array> head in stl_emulation.h (#7480)
* Add C++ standard builds for windows CI

* Allow C++std to be specified in cmake

* Include <array> in stl_emulation

* Add linux std CI builds
2022-08-26 00:22:27 -07:00
sssooonnnggg fa41e83679 [C++] Fixed crash when copying table with empty shared strings (#7477) 2022-08-25 16:50:17 -07:00
Derek Bailey fef2ffc4d0 Use schema include name for keep-prefix (#7469) 2022-08-23 21:29:17 -07:00
Derek Bailey 8367664f15 Flatbuffers Version 2.0.7 (#7462) 2022-08-22 21:42:15 -07:00
Derek Bailey 82b75407a3 Wrap types in namespace for --ts-flat-files and --gen-all (#7451)
* Wrap types in namespace for --ts-flat-files and --gen-all

* Fixes for escaping object types

* Added to generate_code
2022-08-16 12:52:26 -07:00
Derek Bailey 44a7dc9995 Define minimum buffer size (#7440)
* add check for zero sized buffers

* Define minimum flatbuffer size
2022-08-14 12:40:57 -07:00
Stefan F 3cc2daa78f make_span overloads for pointer to vector (#7374) (#7435)
* make_span overloads for pointer to vector (#7374)

* findings from the review

Co-authored-by: Derek Bailey <derekbailey@google.com>
2022-08-14 12:21:55 -07:00
Derek Bailey 83d4e2a100 Add checks to verifier (#7438) 2022-08-13 23:44:13 -07:00
Derek Bailey 2ee20a5f3d Remove auto including locale functions (#7430) 2022-08-12 15:23:46 -07:00
Marcel Krüger fc5d86f1e7 [C++] Make template parameter in stl_emulation.h more explicit to avoid conflicts with cpprestsdk U macro (#7424)
* [C++] Rename template parameter U in make_span of stl_emulation.h

CPPRESTSDK defines a U macro therefore, calls to U() are problematic.
Rename U to W to avoid conflict.

* [C++] Make typenames of span_convertable and make_span more expressive

Co-authored-by: Derek Bailey <derekbailey@google.com>
2022-08-10 13:22:08 -07:00
sssooonnnggg 7798be3bb6 avoid zero-as-null-pointer warning (#7423)
Co-authored-by: Derek Bailey <derekbailey@google.com>
2022-08-08 21:32:13 -07:00
Wouter van Oortmerssen ec0129369c Fix FlexBuffers Verifier tracking vectors reuse at wrong offset
See test for an example.
Found in: https://github.com/aardappel/lobster/pull/193
2022-08-05 10:45:01 -07:00
Atil Kurtulmus 50dd385b30 Add missing const (#7401) 2022-08-05 11:11:00 -04:00
Derek Bailey 6e2791640e keep-prefix keeps relative pathing (#7394) 2022-07-26 15:11:54 -07:00
Derek Bailey 5f01376027 Only include direct included filed (#7348) 2022-06-15 12:10:39 -07:00
mustiikhalil 11a1988705 Started implementation for private flags in rust (#7269)
Adds flag to the cpp to fix bad annotations in all the languages

Addresses comments to the PR, and fixes logic for leaking annotations
2022-06-05 23:04:05 +02:00
Björn Harrtell 74a25536be Add size check to fix out of bounds read risk (#7304) 2022-05-13 15:15:00 -07:00
pkasting 0fe13cb28c Remove span ConstIterator/cbegin()/cend(). (#7295)
std::span lacks these; make  the flatbuffers STL emulation and tests
match.  This fixes a compile error in C++20 mode when using std::span.

Bug: chromium:1284275
2022-05-10 13:53:38 -07:00
Derek Bailey d34dc32c20 fix include order 2022-04-22 11:19:04 -07:00
Derek Bailey 9d45a64036 more google merge fixes 2022-04-19 14:35:20 -07:00
Derek Bailey 7bcd857b87 Specialize CreateVector with std::initializer_list (#7254) 2022-04-19 13:06:50 -07:00
Derek Bailey 70002dc5ca various fixes for google merge 2022-04-18 21:15:35 -07:00
Derek Bailey 275b739944 allow overriding FLATBUFFERS_MAX_ALIGNMENT 2022-04-15 11:56:34 -07:00
Henner Zeller 7f663b1204 Allow CreateVectorOfStrings() to work with any string-type. (#7238)
Any string type that is supported by CreateString(), e.g.
const char* or string_view will now also work.

Signed-off-by: Henner Zeller <hzeller@google.com>
2022-04-11 17:02:19 -07:00
mustiikhalil 832c618f5f Adds implementation flag for swift (#7202)
* Adds implementation flag for swift

Forces internal flag when using @_implementationOnly in swift

Fixes access type for verifier functions & encoder functions

Updates generated code

* Addresses PR comments & adds a code gen dir within the swift tests

* Adds test case for no-include

* Fixes code gen script

Removes prefix
2022-04-06 13:31:38 -07:00
avaliente-bc 20aad0c41e [C++] stl_emulation span::count_ is not const anymore (#7226) (#7227)
In C++ we cannot have both assignment operator and const member. Since
span::operator= is defined, span::count_ constness must be removed.
2022-04-06 12:27:37 -07:00
Derek Bailey f083b33f2a code gen flexbuffer verifier (#7207)
* code gen flexbuffer verifier

* remove verify nested flexbuffers from flexbuffers

* made function static, and placed higher in file

* moved function to own header
2022-04-05 16:29:42 -07:00
Derek Bailey 0da6f94867 [C++] Static assert on Flatbuffers Version (#7203)
* Static assert on Flatbuffers Version

* add comment
2022-03-31 20:56:41 -07:00
Casper a4cb1599d8 Namerdart (#7187)
* Apply Namer to Dart.

- Also refactor idl_gen_dart a bit
  - to use more const and references
  - out parameters should be the last argument

* Add keyword test

* minor fixes

* fix merge

* extra 's'

* move dart keyord into dart dir

* Address comments

* Use $ for escaping keywords
* Outparameters for namespace_map

* Escape dollar in toString

* Escape dollar in toString2

* Use UpperCamelCase for types and variants

* try to fix ToString

* namer Type fixes

* Remove path prefixing in imports

* gen code

Co-authored-by: Casper Neo <cneo@google.com>
2022-03-28 18:07:09 -04:00
Stefan F 4213d91054 VerifySizePrefixed (reflection::Schema) and GetAnySizePrefixedRoot added (#7181)
* Typo in flatc options (warning-as-errors instead of warnings-as-errors)

* VerifySizePrefixed (reflection::Schema) and GetAnySizePrefixedRoot added

* some review comments

* more review comments
2022-03-23 21:39:38 -07:00
Derek Bailey d3aeee32bb Annotated Flatbuffer Binary (#7174)
* Annotated Flatbuffer Binary

* Various fixes

* Handles old schema

* handle multiple missing fields

* minor edits

* bazel fix, spelling fix, ascii fix
2022-03-18 14:08:05 -07:00
David Schneider b8c77d4041 Make inclusion of header <optional> opt-out via macro (#7168)
* Allow suppression of including <optional> via macro

* Combine preprocessor conditions

* Make inclusion of header <optional> opt-in

* Make inclusion of <optional> opt-out via macro

* Auto-detect C++17+ when defining macro

* Enclose macro expression in parentheses

* Check value of macro, not whether it's defined

* Fix parentheses

* Don't define macro with expression using other macros

The preprocessor doesn't seem to like it.

* Fix parentheses
2022-03-15 17:52:11 -07:00
James Kuszmaul e5f331db99 [TS] Add single-file ts codegen & bazel rule for typescript (#7161)
The headline here is adding a flatbuffer_ts_library rule for generating
typescript code in bazel. This entails some non-trivial other changes,
but ideally none are user-visible.

In particular:
* Added a --ts-flat-file flag that generates a single *_generated.ts
  file instead of separate files for each typescript type. This makes
  bazel much happier.
* Import the bazel rules_nodejs stuff needed to support building
  typescript in bazel
* Move flatbuffers.ts to index.ts because I wasn't sure how to make
  bazel comprehend the "main" attribute of the package.json. Happy
  to take another stab at figuring that out if really needed.
* Fix another couple keyword escaping spots in typescript...
2022-03-10 10:08:13 -08:00
Casper 65a10b6e32 Implement a config based name manager and use it in Rust codegen (#7144)
* Refactor out a  class from Rust Codegen

* Convert GenerateRustModuleRootFile

* git-clang-format

* unused variable

* parenthesis

* update BUILD file

* buildifier

* Delete bfbs_gen_rust.h

* Delete bfbs_gen_rust.cpp

* Addressed some comments

* Namer::EnumVariant

* Remove do not submit; Add Namespace vector overload

* Unshadow variable

* removed redundant variables

* Warn if converting from kKeep case.

Co-authored-by: Casper Neo <cneo@google.com>
2022-03-05 20:43:57 -05:00
Derek Bailey c9571d9897 Replaced ToDasherCase with ConvertCase (#7131) 2022-02-23 22:31:40 -06:00
Derek Bailey 3694b830a2 Use ConvertCase instead of Make{Upper,Lower,Snake} implementations (#7127)
* Unified name case conversion to single method

* Convert bfbs_gen to use ConvertCase

* convert rust to use ConvertCase

* Convert idl_parser to use ConvertCase

* Convert MakeScreamingCamel to ConvertCase

* Replaced MakeCamel with ConvertCase

* minor fixes
2022-02-23 18:08:11 -06:00
Casper 615616cb55 Change Rust generated file defaults (#7101)
* Change Rust generated file defaults

After #6731, flatc changed its default behavior
for generating rust code to fix some importing issues.
This was a breaking change which invlidated the patch release,
`flatc 2.0.5` (#7081). This PR reverses the default so we can
release a patch update. However, does break Rust users who work at
HEAD.

* Bump flatc patch version (2.0.6)

Co-authored-by: Casper Neo <cneo@google.com>
2022-02-15 11:48:42 -05:00
Wouter van Oortmerssen d5add9fca5 Fixed FlexBuffers ToString unquoted non-ident keys
Change-Id: I0a17ee292c9eebbb1e9b2530c07d37d63b4dda24
2022-02-14 11:28:31 -08:00
Derek Bailey faadbc10ea Add CreateVector overload to accept array like (#7095) 2022-02-09 22:16:46 -08:00
Derek Bailey ed6ae8d322 explicitly defined std::allocator (#7094) 2022-02-09 15:09:52 -08:00
Derek Bailey c85fb690f4 Add Parsing Completed function for Rust (#7084) 2022-02-08 07:40:55 -08:00
Derek Bailey fd0d1ed929 update C++ generator to emit scoped enums in vector of unions (#7075) 2022-02-02 22:29:21 -08:00
Derek Bailey bc901436db clang format on codebase (#7058) 2022-02-01 11:23:18 -08:00