diff options
author | Wouter van Oortmerssen <aardappel@gmail.com> | 2019-03-04 14:56:07 -0800 |
---|---|---|
committer | Wouter van Oortmerssen <aardappel@gmail.com> | 2019-03-07 15:05:00 -0800 |
commit | 71628dad0db952ceafc3d4fbaaf4f9096069c98c (patch) | |
tree | 8e2e16c135b774cef8d7be221c1eddc92de29727 /include/flatbuffers/idl.h | |
parent | cb7b2bf87e6b5ac38c626380dbbc2284f44ad367 (diff) | |
download | flatbuffers-71628dad0db952ceafc3d4fbaaf4f9096069c98c.tar.gz |
Fixed vector of union JSON parsing.
This for some reason never had a test case, and was broken.
Change-Id: If832f5eb8b6c5ba8a75257464892634b38719c55
Diffstat (limited to 'include/flatbuffers/idl.h')
-rw-r--r-- | include/flatbuffers/idl.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 6b70f3ae..62b3396e 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -719,7 +719,9 @@ class Parser : public ParserState { FLATBUFFERS_CHECKED_ERROR ParseComma(); FLATBUFFERS_CHECKED_ERROR ParseAnyValue(Value &val, FieldDef *field, size_t parent_fieldn, - const StructDef *parent_struct_def); + const StructDef *parent_struct_def, + uoffset_t count, + bool inside_vector = false); template<typename F> FLATBUFFERS_CHECKED_ERROR ParseTableDelimiters(size_t &fieldn, const StructDef *struct_def, @@ -728,8 +730,9 @@ class Parser : public ParserState { std::string *value, uoffset_t *ovalue); void SerializeStruct(const StructDef &struct_def, const Value &val); template<typename F> - FLATBUFFERS_CHECKED_ERROR ParseVectorDelimiters(size_t &count, F body); - FLATBUFFERS_CHECKED_ERROR ParseVector(const Type &type, uoffset_t *ovalue); + FLATBUFFERS_CHECKED_ERROR ParseVectorDelimiters(uoffset_t &count, F body); + FLATBUFFERS_CHECKED_ERROR ParseVector(const Type &type, uoffset_t *ovalue, + FieldDef *field, size_t fieldn); FLATBUFFERS_CHECKED_ERROR ParseNestedFlatbuffer(Value &val, FieldDef *field, size_t fieldn, const StructDef *parent_struct_def); @@ -775,7 +778,7 @@ class Parser : public ParserState { const char *suffix, BaseType baseType); - bool SupportsVectorOfUnions() const; + bool SupportsAdvancedUnionFeatures() const; Namespace *UniqueNamespace(Namespace *ns); FLATBUFFERS_CHECKED_ERROR RecurseError(); |