From 5121883cc6bd83cbf6a3500b3c77b47242029be1 Mon Sep 17 00:00:00 2001 From: Fergus Henderson Date: Thu, 16 Oct 2025 16:50:52 +0100 Subject: [PATCH 1/4] Fixes to make SizeVerifier work. In particular change all the places in the Flatbuffers library and generated code that were using `Verifier` to instead use `VerifierTemplate` and wrap them all inside `template `. Also add unit tests for SizeVerifier. --- goldens/cpp/basic_generated.h | 16 +++-- include/flatbuffers/flex_flat_util.h | 3 +- include/flatbuffers/reflection_generated.h | 40 +++++++---- include/flatbuffers/table.h | 43 ++++++----- samples/monster_generated.h | 28 +++++--- src/idl_gen_cpp.cpp | 47 +++++++++--- src/idl_parser.cpp | 5 +- tests/64bit/evolution/v1_generated.h | 13 ++-- tests/64bit/evolution/v2_generated.h | 13 ++-- tests/64bit/test_64bit_generated.h | 18 +++-- .../generated_cpp17/monster_test_generated.h | 71 ++++++++++++------- .../optional_scalars_generated.h | 13 ++-- .../generated_cpp17/union_vector_generated.h | 51 ++++++++----- tests/evolution_test/evolution_v1_generated.h | 31 +++++--- tests/evolution_test/evolution_v2_generated.h | 34 +++++---- tests/fuzzer/flatbuffers_verifier_fuzzer.cc | 2 + tests/key_field/key_field_sample_generated.h | 13 ++-- tests/monster_extra_generated.h | 13 ++-- tests/monster_test_generated.h | 71 ++++++++++++------- .../ext_only/monster_test_generated.hpp | 71 ++++++++++++------- .../filesuffix_only/monster_test_suffix.h | 71 ++++++++++++------- .../monster_test_suffix.hpp | 71 ++++++++++++------- .../namespace_test1_generated.h | 15 ++-- .../namespace_test2_generated.h | 9 ++- tests/native_inline_table_test_generated.h | 6 +- tests/native_type_test_generated.h | 13 ++-- tests/optional_scalars_generated.h | 13 ++-- tests/test.cpp | 30 ++++++++ tests/union_underlying_type_test_generated.h | 24 ++++--- tests/union_vector/union_vector_generated.h | 51 ++++++++----- 30 files changed, 593 insertions(+), 306 deletions(-) diff --git a/goldens/cpp/basic_generated.h b/goldens/cpp/basic_generated.h index 2c5391fd848..7304b382acf 100644 --- a/goldens/cpp/basic_generated.h +++ b/goldens/cpp/basic_generated.h @@ -30,7 +30,8 @@ struct Galaxy FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int64_t num_stars() const { return GetField(VT_NUM_STARS, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_NUM_STARS, 8) && verifier.EndTable(); @@ -75,7 +76,8 @@ struct Universe FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset> *galaxies() const { return GetPointer> *>(VT_GALAXIES); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_AGE, 8) && VerifyOffset(verifier, VT_GALAXIES) && @@ -135,14 +137,16 @@ inline const flatbuffers::goldens::Universe *GetSizePrefixedUniverse(const void return ::flatbuffers::GetSizePrefixedRoot(buf); } +template inline bool VerifyUniverseBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedUniverseBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishUniverseBuffer( diff --git a/include/flatbuffers/flex_flat_util.h b/include/flatbuffers/flex_flat_util.h index c02e90fea1c..4b4b8f8fb91 100644 --- a/include/flatbuffers/flex_flat_util.h +++ b/include/flatbuffers/flex_flat_util.h @@ -23,9 +23,10 @@ namespace flexbuffers { // Verifies the `nested` flexbuffer within a flatbuffer vector is valid. +template inline bool VerifyNestedFlexBuffer( const flatbuffers::Vector* const nested, - flatbuffers::Verifier& verifier) { + flatbuffers::VerifierTemplate& verifier) { if (!nested) return true; return verifier.Check(flexbuffers::VerifyBuffer( nested->data(), nested->size(), verifier.GetFlexReuseTracker())); diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 5c2ab09b256..0c24320d7c0 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -196,7 +196,8 @@ struct Type FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { uint32_t element_size() const { return GetField(VT_ELEMENT_SIZE, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_BASE_TYPE, 1) && VerifyField(verifier, VT_ELEMENT, 1) && @@ -283,7 +284,8 @@ struct KeyValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *value() const { return GetPointer(VT_VALUE); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_KEY) && verifier.VerifyString(key()) && @@ -367,7 +369,8 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { return GetPointer> *>(VT_ATTRIBUTES); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -495,7 +498,8 @@ struct Enum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *declaration_file() const { return GetPointer(VT_DECLARATION_FILE); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -675,7 +679,8 @@ struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool offset64() const { return GetField(VT_OFFSET64, 0) != 0; } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -880,7 +885,8 @@ struct Object FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *declaration_file() const { return GetPointer(VT_DECLARATION_FILE); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1028,7 +1034,8 @@ struct RPCCall FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { return GetPointer> *>(VT_DOCUMENTATION); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1151,7 +1158,8 @@ struct Service FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *declaration_file() const { return GetPointer(VT_DECLARATION_FILE); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1267,7 +1275,8 @@ struct SchemaFile FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames() const { return GetPointer> *>(VT_INCLUDED_FILENAMES); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_FILENAME) && verifier.VerifyString(filename()) && @@ -1360,7 +1369,8 @@ struct Schema FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset> *fbs_files() const { return GetPointer> *>(VT_FBS_FILES); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_OBJECTS) && verifier.VerifyVector(objects()) && @@ -1498,14 +1508,16 @@ inline bool SizePrefixedSchemaBufferHasIdentifier(const void *buf) { buf, SchemaIdentifier(), true); } +template inline bool VerifySchemaBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(SchemaIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(SchemaIdentifier()); } +template inline bool VerifySizePrefixedSchemaBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(SchemaIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(SchemaIdentifier()); } inline const char *SchemaExtension() { diff --git a/include/flatbuffers/table.h b/include/flatbuffers/table.h index defe084370b..535d9c1fc48 100644 --- a/include/flatbuffers/table.h +++ b/include/flatbuffers/table.h @@ -122,49 +122,58 @@ class Table { // Verify the vtable of this table. // Call this once per table, followed by VerifyField once per field. - bool VerifyTableStart(Verifier& verifier) const { + template + bool VerifyTableStart(VerifierTemplate& verifier) const { return verifier.VerifyTableStart(data_); } // Verify a particular field. - template - bool VerifyField(const Verifier& verifier, voffset_t field, - size_t align) const { + template + bool VerifyField(const VerifierTemplate& verifier, + voffset_t field, size_t align) const { // Calling GetOptionalFieldOffset should be safe now thanks to // VerifyTable(). auto field_offset = GetOptionalFieldOffset(field); // Check the actual field. - return !field_offset || verifier.VerifyField(data_, field_offset, align); + return !field_offset || + verifier.template VerifyField(data_, field_offset, align); } // VerifyField for required fields. - template - bool VerifyFieldRequired(const Verifier& verifier, voffset_t field, - size_t align) const { + template + bool VerifyFieldRequired(const VerifierTemplate& verifier, + voffset_t field, size_t align) const { auto field_offset = GetOptionalFieldOffset(field); return verifier.Check(field_offset != 0) && - verifier.VerifyField(data_, field_offset, align); + verifier.template VerifyField(data_, field_offset, align); } // Versions for offsets. - template - bool VerifyOffset(const Verifier& verifier, voffset_t field) const { + template + bool VerifyOffset(const VerifierTemplate& verifier, + voffset_t field) const { auto field_offset = GetOptionalFieldOffset(field); - return !field_offset || verifier.VerifyOffset(data_, field_offset); + return !field_offset || + verifier.template VerifyOffset(data_, field_offset); } - template - bool VerifyOffsetRequired(const Verifier& verifier, voffset_t field) const { + template + bool VerifyOffsetRequired(const VerifierTemplate& verifier, + voffset_t field) const { auto field_offset = GetOptionalFieldOffset(field); return verifier.Check(field_offset != 0) && - verifier.VerifyOffset(data_, field_offset); + verifier.template VerifyOffset(data_, field_offset); } - bool VerifyOffset64(const Verifier& verifier, voffset_t field) const { + template + bool VerifyOffset64(const VerifierTemplate& verifier, + voffset_t field) const { return VerifyOffset(verifier, field); } - bool VerifyOffset64Required(const Verifier& verifier, voffset_t field) const { + template + bool VerifyOffset64Required(const VerifierTemplate& verifier, + voffset_t field) const { return VerifyOffsetRequired(verifier, field); } diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 4cd4c5b9821..d9c5f6dcca8 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -179,8 +179,10 @@ inline bool operator!=(const EquipmentUnion &lhs, const EquipmentUnion &rhs) { return !(lhs == rhs); } -bool VerifyEquipment(::flatbuffers::Verifier &verifier, const void *obj, Equipment type); -bool VerifyEquipmentVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyEquipment(::flatbuffers::VerifierTemplate &verifier, const void *obj, Equipment type); +template +bool VerifyEquipmentVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vec3 FLATBUFFERS_FINAL_CLASS { private: @@ -331,7 +333,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_path() { return GetPointer<::flatbuffers::Vector *>(VT_PATH); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 4) && VerifyField(verifier, VT_MANA, 2) && @@ -491,7 +494,8 @@ struct Weapon FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_damage(int16_t _damage = 0) { return SetField(VT_DAMAGE, _damage, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -686,7 +690,8 @@ inline ::flatbuffers::Offset CreateWeapon(::flatbuffers::FlatBufferBuild _damage); } -inline bool VerifyEquipment(::flatbuffers::Verifier &verifier, const void *obj, Equipment type) { +template +inline bool VerifyEquipment(::flatbuffers::VerifierTemplate &verifier, const void *obj, Equipment type) { switch (type) { case Equipment_NONE: { return true; @@ -699,7 +704,8 @@ inline bool VerifyEquipment(::flatbuffers::Verifier &verifier, const void *obj, } } -inline bool VerifyEquipmentVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyEquipmentVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -883,14 +889,16 @@ inline MyGame::Sample::Monster *GetMutableSizePrefixedMonster(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } +template inline bool VerifyMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishMonsterBuffer( diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 38f68b7262d..7f245947565 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -677,17 +677,22 @@ class CppGenerator : public BaseGenerator { code_.SetValue("ID", "nullptr"); } + code_ += "template "; code_ += "inline bool Verify{{STRUCT_NAME}}Buffer("; - code_ += " ::flatbuffers::Verifier &verifier) {"; - code_ += " return verifier.VerifyBuffer<{{CPP_NAME}}>({{ID}});"; + code_ += + " ::flatbuffers::VerifierTemplate &verifier) {"; + code_ += " return verifier.template VerifyBuffer<{{CPP_NAME}}>({{ID}});"; code_ += "}"; code_ += ""; + code_ += "template "; code_ += "inline bool VerifySizePrefixed{{STRUCT_NAME}}Buffer("; - code_ += " ::flatbuffers::Verifier &verifier) {"; + code_ += + " ::flatbuffers::VerifierTemplate &verifier) {"; code_ += " return " - "verifier.VerifySizePrefixedBuffer<{{CPP_NAME}}{{SIZE_T}}>({{ID}});"; + "verifier.template " + "VerifySizePrefixedBuffer<{{CPP_NAME}}{{SIZE_T}}>({{ID}});"; code_ += "}"; code_ += ""; @@ -1087,19 +1092,34 @@ class CppGenerator : public BaseGenerator { } } + // For the initial declaration, we specify the template parameters, + // including template default arguments. + std::string UnionVerifyTemplateDecl() { + return "template "; + } + + // For the subsequent definition, we must not redeclare the template default arguments. + std::string UnionVerifyTemplateDef() { + return "template "; + } + + // Should be used in conjunction with + // UnionVerifyTemplateDecl()/UnionVerifyTemplateDef(). std::string UnionVerifySignature(const EnumDef& enum_def) { return "bool Verify" + Name(enum_def) + - "(::flatbuffers::Verifier &verifier, const void *obj, " + - Name(enum_def) + " type)"; + "(::flatbuffers::VerifierTemplate &verifier, " + + "const void *obj, " + Name(enum_def) + " type)"; } + // Should be used in conjunction with + // UnionVerifyTemplateDecl()/UnionVerifyTemplateDef(). std::string UnionVectorVerifySignature(const EnumDef& enum_def) { const std::string name = Name(enum_def); const std::string& type = opts_.scoped_enums ? name : GenTypeBasic(enum_def.underlying_type, false); return "bool Verify" + name + "Vector" + - "(::flatbuffers::Verifier &verifier, " + + "(::flatbuffers::VerifierTemplate &verifier, " + "const ::flatbuffers::Vector<::flatbuffers::Offset> " "*values, " + "const ::flatbuffers::Vector<" + type + "> *types)"; @@ -1394,7 +1414,9 @@ class CppGenerator : public BaseGenerator { GenEnumObjectBasedAPI(enum_def); if (enum_def.is_union) { + code_ += UnionVerifyTemplateDecl(); code_ += UnionVerifySignature(enum_def) + ";"; + code_ += UnionVerifyTemplateDecl(); code_ += UnionVectorVerifySignature(enum_def) + ";"; code_ += ""; } @@ -1623,6 +1645,7 @@ class CppGenerator : public BaseGenerator { // on the wrong type. code_.SetValue("ENUM_NAME", Name(enum_def)); + code_ += UnionVerifyTemplateDef(); code_ += "inline " + UnionVerifySignature(enum_def) + " {"; code_ += " switch (type) {"; for (auto it = enum_def.Vals().begin(); it != enum_def.Vals().end(); ++it) { @@ -1639,7 +1662,7 @@ class CppGenerator : public BaseGenerator { code_.SetValue("ALIGN", NumToString(ev.union_type.struct_def->minalign)); code_ += - " return verifier.VerifyField<{{TYPE}}>(" + " return verifier.template VerifyField<{{TYPE}}>(" "static_cast(obj), 0, {{ALIGN}});"; } else { code_ += getptr; @@ -1663,6 +1686,7 @@ class CppGenerator : public BaseGenerator { code_ += "}"; code_ += ""; + code_ += UnionVerifyTemplateDef(); code_ += "inline " + UnionVectorVerifySignature(enum_def) + " {"; code_ += " if (!values || !types) return !values && !types;"; code_ += " if (values->size() != types->size()) return false;"; @@ -2391,7 +2415,7 @@ class CppGenerator : public BaseGenerator { code_.SetValue("CPP_NAME", nfn); // FIXME: file_identifier. code_ += - "{{PRE}}verifier.VerifyNestedFlatBuffer<{{CPP_NAME}}>" + "{{PRE}}verifier.template VerifyNestedFlatBuffer<{{CPP_NAME}}>" "({{NAME}}(), nullptr)\\"; } else if (field.flexbuffer) { code_ += @@ -2976,7 +3000,10 @@ class CppGenerator : public BaseGenerator { // Generate a verifier function that can check a buffer from an untrusted // source will never cause reads outside the buffer. - code_ += " bool Verify(::flatbuffers::Verifier &verifier) const {"; + code_ += " template "; + code_ += + " bool Verify(::flatbuffers::VerifierTemplate " + "&verifier) const {"; code_ += " return VerifyTableStart(verifier)\\"; for (const auto& field : struct_def.fields.vec) { if (field->deprecated) { diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 42df4cde71e..24555aec48e 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -4351,8 +4351,9 @@ bool Parser::Deserialize(const uint8_t* buf, const size_t size) { else size_prefixed = true; } - auto verify_fn = size_prefixed ? &reflection::VerifySizePrefixedSchemaBuffer - : &reflection::VerifySchemaBuffer; + auto verify_fn = size_prefixed + ? &reflection::VerifySizePrefixedSchemaBuffer + : &reflection::VerifySchemaBuffer; if (!verify_fn(verifier)) { return false; } diff --git a/tests/64bit/evolution/v1_generated.h b/tests/64bit/evolution/v1_generated.h index 10e715e18f0..c9d7f857ca9 100644 --- a/tests/64bit/evolution/v1_generated.h +++ b/tests/64bit/evolution/v1_generated.h @@ -52,7 +52,8 @@ struct RootTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_b() { return GetPointer<::flatbuffers::Vector *>(VT_B); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyOffset(verifier, VT_B) && @@ -180,14 +181,16 @@ inline v1::RootTable *GetMutableSizePrefixedRootTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } +template inline bool VerifyRootTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedRootTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishRootTableBuffer( diff --git a/tests/64bit/evolution/v2_generated.h b/tests/64bit/evolution/v2_generated.h index 0b6b702e853..f5836e7ad68 100644 --- a/tests/64bit/evolution/v2_generated.h +++ b/tests/64bit/evolution/v2_generated.h @@ -60,7 +60,8 @@ struct RootTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector64 *mutable_big_vector() { return GetPointer64<::flatbuffers::Vector64 *>(VT_BIG_VECTOR); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyOffset(verifier, VT_B) && @@ -204,14 +205,16 @@ inline v2::RootTable *GetMutableSizePrefixedRootTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } +template inline bool VerifyRootTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedRootTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishRootTableBuffer( diff --git a/tests/64bit/test_64bit_generated.h b/tests/64bit/test_64bit_generated.h index c3cb2001130..3c947235472 100644 --- a/tests/64bit/test_64bit_generated.h +++ b/tests/64bit/test_64bit_generated.h @@ -108,7 +108,8 @@ struct WrapperTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vector() { return GetPointer64<::flatbuffers::Vector *>(VT_VECTOR); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset64(verifier, VT_VECTOR) && verifier.VerifyVector(vector()) && @@ -258,7 +259,8 @@ struct RootTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector64 *mutable_forced_aligned_vector() { return GetPointer64<::flatbuffers::Vector64 *>(VT_FORCED_ALIGNED_VECTOR); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset64(verifier, VT_FAR_VECTOR) && verifier.VerifyVector(far_vector()) && @@ -271,7 +273,7 @@ struct RootTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { verifier.VerifyString(near_string()) && VerifyOffset64(verifier, VT_NESTED_ROOT) && verifier.VerifyVector(nested_root()) && - verifier.VerifyNestedFlatBuffer(nested_root(), nullptr) && + verifier.template VerifyNestedFlatBuffer(nested_root(), nullptr) && VerifyOffset64(verifier, VT_FAR_STRUCT_VECTOR) && verifier.VerifyVector(far_struct_vector()) && VerifyOffset64(verifier, VT_BIG_STRUCT_VECTOR) && @@ -616,14 +618,16 @@ inline RootTable *GetMutableSizePrefixedRootTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } +template inline bool VerifyRootTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedRootTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishRootTableBuffer( diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index e14cd4c2a3f..95afbdc2a30 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -323,8 +323,10 @@ struct AnyUnion { } }; -bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class AnyUniqueAliases : uint8_t { NONE = 0, @@ -450,8 +452,10 @@ struct AnyUniqueAliasesUnion { } }; -bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class AnyAmbiguousAliases : uint8_t { NONE = 0, @@ -535,8 +539,10 @@ struct AnyAmbiguousAliasesUnion { } }; -bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -881,7 +887,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -935,7 +942,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1006,7 +1014,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: if constexpr (Index == 0) return color(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1107,7 +1116,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 2) return count(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1218,7 +1228,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { if constexpr (Index == 0) return id(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1886,7 +1897,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 60) return double_inf_default(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1911,7 +1923,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { verifier.VerifyTable(enemy()) && VerifyOffset(verifier, VT_TESTNESTEDFLATBUFFER) && verifier.VerifyVector(testnestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_TESTEMPTY) && verifier.VerifyTable(testempty()) && VerifyField(verifier, VT_TESTBOOL, 1) && @@ -1970,7 +1982,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_SIGNED_ENUM, 1) && VerifyOffset(verifier, VT_TESTREQUIREDNESTEDFLATBUFFER) && verifier.VerifyVector(testrequirednestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_SCALAR_KEY_SORTED_TABLES) && verifier.VerifyVector(scalar_key_sorted_tables()) && verifier.VerifyVectorOfTables(scalar_key_sorted_tables()) && @@ -2692,7 +2704,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 11) return vf64(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3385,7 +3398,8 @@ inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatB _vf64); } -inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any::NONE: { return true; @@ -3406,7 +3420,8 @@ inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any ty } } -inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3498,7 +3513,8 @@ inline void AnyUnion::Reset() { type = Any::NONE; } -inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases::NONE: { return true; @@ -3519,7 +3535,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void } } -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3611,7 +3628,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases::NONE; } -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases::NONE: { return true; @@ -3632,7 +3650,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const v } } -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4241,14 +4260,16 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } +template inline bool VerifyMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MonsterIdentifier()); } +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } inline const char *MonsterExtension() { diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index f2ace0e619d..3023e9ad7ae 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -395,7 +395,8 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 35) return default_enum(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_JUST_I8, 1) && VerifyField(verifier, VT_MAYBE_I8, 1) && @@ -958,14 +959,16 @@ inline bool SizePrefixedScalarStuffBufferHasIdentifier(const void *buf) { buf, ScalarStuffIdentifier(), true); } +template inline bool VerifyScalarStuffBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(ScalarStuffIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(ScalarStuffIdentifier()); } +template inline bool VerifySizePrefixedScalarStuffBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(ScalarStuffIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(ScalarStuffIdentifier()); } inline const char *ScalarStuffExtension() { diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index 0b428e1ea2e..beb9774c16f 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -158,8 +158,10 @@ struct CharacterUnion { } }; -bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type); -bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type); +template +bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class Gadget : uint8_t { NONE = 0, @@ -266,8 +268,10 @@ struct GadgetUnion { } }; -bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type); -bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type); +template +bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { private: @@ -418,7 +422,8 @@ struct Attacker FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { if constexpr (Index == 0) return sword_attack_damage(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_SWORD_ATTACK_DAMAGE, 4) && verifier.EndTable(); @@ -495,7 +500,8 @@ struct HandFan FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { if constexpr (Index == 0) return length(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LENGTH, 4) && verifier.EndTable(); @@ -612,7 +618,8 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 3) return characters(); else static_assert(Index != -1, "Invalid Field Index"); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_MAIN_CHARACTER_TYPE, 1) && VerifyOffset(verifier, VT_MAIN_CHARACTER) && @@ -791,7 +798,8 @@ inline ::flatbuffers::Offset CreateMovie(::flatbuffers::FlatBufferBuilder _characters); } -inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type) { +template +inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type) { switch (type) { case Character::NONE: { return true; @@ -801,13 +809,13 @@ inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, return verifier.VerifyTable(ptr); } case Character::Rapunzel: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Character::Belle: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Character::BookFan: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Character::Other: { auto ptr = reinterpret_cast(obj); @@ -821,7 +829,8 @@ inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, } } -inline bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -964,13 +973,14 @@ inline void CharacterUnion::Reset() { type = Character::NONE; } -inline bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type) { +template +inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type) { switch (type) { case Gadget::NONE: { return true; } case Gadget::FallingTub: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Gadget::HandFan: { auto ptr = reinterpret_cast(obj); @@ -980,7 +990,8 @@ inline bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gad } } -inline bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -1226,14 +1237,16 @@ inline bool SizePrefixedMovieBufferHasIdentifier(const void *buf) { buf, MovieIdentifier(), true); } +template inline bool VerifyMovieBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MovieIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MovieIdentifier()); } +template inline bool VerifySizePrefixedMovieBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MovieIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MovieIdentifier()); } inline void FinishMovieBuffer( diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 91ae45d90b3..023edcd35f5 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -102,8 +102,10 @@ template<> struct UnionTraits { static const Union enum_value = Union::TableB; }; -bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type); -bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type); +template +bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { private: @@ -156,7 +158,8 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int32_t b() const { return GetField(VT_B, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -203,7 +206,8 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int32_t a() const { return GetField(VT_A, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -302,7 +306,8 @@ struct Root FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const Evolution::V1::TableB *j_as_TableB() const { return j_type() == Evolution::V1::Union::TableB ? static_cast(j()) : nullptr; } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 1) && @@ -455,7 +460,8 @@ inline ::flatbuffers::Offset CreateRootDirect( j); } -inline bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type) { +template +inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type) { switch (type) { case Union::NONE: { return true; @@ -472,7 +478,8 @@ inline bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Unio } } -inline bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -492,14 +499,16 @@ inline const Evolution::V1::Root *GetSizePrefixedRoot(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot(buf); } +template inline bool VerifyRootBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedRootBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishRootBuffer( diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 8a6dcf050ab..768142896ef 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -118,8 +118,10 @@ template<> struct UnionTraits { static const Union enum_value = Union::TableC; }; -bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type); -bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type); +template +bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { private: @@ -176,7 +178,8 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *c() const { return GetPointer(VT_C); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -243,7 +246,8 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int32_t a() const { return GetField(VT_A, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -288,7 +292,8 @@ struct TableC FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *b() const { return GetPointer(VT_B); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 8) && VerifyOffset(verifier, VT_B) && @@ -397,7 +402,8 @@ struct Root FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { uint8_t l() const { return GetField(VT_L, 56); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_B, 1) && VerifyField(verifier, VT_C_TYPE, 1) && @@ -538,7 +544,8 @@ inline ::flatbuffers::Offset CreateRootDirect( l); } -inline bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Union type) { +template +inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type) { switch (type) { case Union::NONE: { return true; @@ -559,7 +566,8 @@ inline bool VerifyUnion(::flatbuffers::Verifier &verifier, const void *obj, Unio } } -inline bool VerifyUnionVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -579,14 +587,16 @@ inline const Evolution::V2::Root *GetSizePrefixedRoot(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot(buf); } +template inline bool VerifyRootBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedRootBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishRootBuffer( diff --git a/tests/fuzzer/flatbuffers_verifier_fuzzer.cc b/tests/fuzzer/flatbuffers_verifier_fuzzer.cc index f8a7b4c82ba..94168b54a9c 100644 --- a/tests/fuzzer/flatbuffers_verifier_fuzzer.cc +++ b/tests/fuzzer/flatbuffers_verifier_fuzzer.cc @@ -11,5 +11,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { flatbuffers::Verifier verifier(data, size); MyGame::Example::VerifyMonsterBuffer(verifier); + flatbuffers::SizeVerifier size_verifier(data, size); + MyGame::Example::VerifyMonsterBuffer(size_verifier); return 0; } diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 46b43852dd4..8d93e139703 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -634,7 +634,8 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_h() { return GetPointer<::flatbuffers::Vector *>(VT_H); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -990,14 +991,16 @@ inline keyfield::sample::FooTable *GetMutableSizePrefixedFooTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } +template inline bool VerifyFooTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedFooTableBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishFooTableBuffer( diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 201569abc15..e5a86fbd133 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -116,7 +116,8 @@ struct MonsterExtra FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_fvec() { return GetPointer<::flatbuffers::Vector *>(VT_FVEC); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_D0, 8) && VerifyField(verifier, VT_D1, 8) && @@ -374,14 +375,16 @@ inline bool SizePrefixedMonsterExtraBufferHasIdentifier(const void *buf) { buf, MonsterExtraIdentifier(), true); } +template inline bool VerifyMonsterExtraBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MonsterExtraIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MonsterExtraIdentifier()); } +template inline bool VerifySizePrefixedMonsterExtraBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MonsterExtraIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MonsterExtraIdentifier()); } inline const char *MonsterExtraExtension() { diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index caa25138247..0aec4e8eb66 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -386,8 +386,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -542,8 +544,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -656,8 +660,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -953,7 +959,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -998,7 +1005,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1055,7 +1063,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1136,7 +1145,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1227,7 +1237,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1817,7 +1828,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1842,7 +1854,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { verifier.VerifyTable(enemy()) && VerifyOffset(verifier, VT_TESTNESTEDFLATBUFFER) && verifier.VerifyVector(testnestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_TESTEMPTY) && verifier.VerifyTable(testempty()) && VerifyField(verifier, VT_TESTBOOL, 1) && @@ -1901,7 +1913,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_SIGNED_ENUM, 1) && VerifyOffset(verifier, VT_TESTREQUIREDNESTEDFLATBUFFER) && verifier.VerifyVector(testrequirednestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_SCALAR_KEY_SORTED_TABLES) && verifier.VerifyVector(scalar_key_sorted_tables()) && verifier.VerifyVectorOfTables(scalar_key_sorted_tables()) && @@ -2534,7 +2546,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3348,7 +3361,8 @@ inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatB _vf64); } -inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3369,7 +3383,8 @@ inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any ty } } -inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3461,7 +3476,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3482,7 +3498,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void } } -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3574,7 +3591,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3595,7 +3613,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const v } } -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4204,14 +4223,16 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } +template inline bool VerifyMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MonsterIdentifier()); } +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } inline const char *MonsterExtension() { diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index ee0a34a1ac7..35f4c00ee13 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -383,8 +383,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -539,8 +541,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -653,8 +657,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -949,7 +955,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -993,7 +1000,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1049,7 +1057,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1129,7 +1138,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1219,7 +1229,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1808,7 +1819,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1833,7 +1845,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { verifier.VerifyTable(enemy()) && VerifyOffset(verifier, VT_TESTNESTEDFLATBUFFER) && verifier.VerifyVector(testnestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_TESTEMPTY) && verifier.VerifyTable(testempty()) && VerifyField(verifier, VT_TESTBOOL, 1) && @@ -1892,7 +1904,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_SIGNED_ENUM, 1) && VerifyOffset(verifier, VT_TESTREQUIREDNESTEDFLATBUFFER) && verifier.VerifyVector(testrequirednestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_SCALAR_KEY_SORTED_TABLES) && verifier.VerifyVector(scalar_key_sorted_tables()) && verifier.VerifyVectorOfTables(scalar_key_sorted_tables()) && @@ -2524,7 +2536,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3338,7 +3351,8 @@ inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatB _vf64); } -inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3359,7 +3373,8 @@ inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any ty } } -inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3451,7 +3466,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3472,7 +3488,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void } } -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3564,7 +3581,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3585,7 +3603,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const v } } -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4194,14 +4213,16 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } +template inline bool VerifyMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MonsterIdentifier()); } +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } inline const char *MonsterExtension() { diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index ee0a34a1ac7..35f4c00ee13 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -383,8 +383,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -539,8 +541,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -653,8 +657,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -949,7 +955,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -993,7 +1000,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1049,7 +1057,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1129,7 +1138,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1219,7 +1229,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1808,7 +1819,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1833,7 +1845,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { verifier.VerifyTable(enemy()) && VerifyOffset(verifier, VT_TESTNESTEDFLATBUFFER) && verifier.VerifyVector(testnestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_TESTEMPTY) && verifier.VerifyTable(testempty()) && VerifyField(verifier, VT_TESTBOOL, 1) && @@ -1892,7 +1904,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_SIGNED_ENUM, 1) && VerifyOffset(verifier, VT_TESTREQUIREDNESTEDFLATBUFFER) && verifier.VerifyVector(testrequirednestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_SCALAR_KEY_SORTED_TABLES) && verifier.VerifyVector(scalar_key_sorted_tables()) && verifier.VerifyVectorOfTables(scalar_key_sorted_tables()) && @@ -2524,7 +2536,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3338,7 +3351,8 @@ inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatB _vf64); } -inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3359,7 +3373,8 @@ inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any ty } } -inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3451,7 +3466,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3472,7 +3488,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void } } -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3564,7 +3581,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3585,7 +3603,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const v } } -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4194,14 +4213,16 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } +template inline bool VerifyMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MonsterIdentifier()); } +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } inline const char *MonsterExtension() { diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index ee0a34a1ac7..35f4c00ee13 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -383,8 +383,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type); -bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -539,8 +541,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type); -bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -653,8 +657,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type); -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -949,7 +955,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -993,7 +1000,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1049,7 +1057,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1129,7 +1138,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1219,7 +1229,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1808,7 +1819,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -1833,7 +1845,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { verifier.VerifyTable(enemy()) && VerifyOffset(verifier, VT_TESTNESTEDFLATBUFFER) && verifier.VerifyVector(testnestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testnestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_TESTEMPTY) && verifier.VerifyTable(testempty()) && VerifyField(verifier, VT_TESTBOOL, 1) && @@ -1892,7 +1904,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_SIGNED_ENUM, 1) && VerifyOffset(verifier, VT_TESTREQUIREDNESTEDFLATBUFFER) && verifier.VerifyVector(testrequirednestedflatbuffer()) && - verifier.VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && + verifier.template VerifyNestedFlatBuffer(testrequirednestedflatbuffer(), nullptr) && VerifyOffset(verifier, VT_SCALAR_KEY_SORTED_TABLES) && verifier.VerifyVector(scalar_key_sorted_tables()) && verifier.VerifyVectorOfTables(scalar_key_sorted_tables()) && @@ -2524,7 +2536,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3338,7 +3351,8 @@ inline ::flatbuffers::Offset CreateTypeAliases(::flatbuffers::FlatB _vf64); } -inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3359,7 +3373,8 @@ inline bool VerifyAny(::flatbuffers::Verifier &verifier, const void *obj, Any ty } } -inline bool VerifyAnyVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3451,7 +3466,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3472,7 +3488,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::Verifier &verifier, const void } } -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3564,7 +3581,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3585,7 +3603,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::Verifier &verifier, const v } } -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4194,14 +4213,16 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } +template inline bool VerifyMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MonsterIdentifier()); } +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MonsterIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } inline const char *MonsterExtension() { diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index 8cf5ab114af..f5cb316b7c3 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -138,8 +138,10 @@ inline bool operator!=(const UnionInNestedNSUnion &lhs, const UnionInNestedNSUni return !(lhs == rhs); } -bool VerifyUnionInNestedNS(::flatbuffers::Verifier &verifier, const void *obj, UnionInNestedNS type); -bool VerifyUnionInNestedNSVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyUnionInNestedNS(::flatbuffers::VerifierTemplate &verifier, const void *obj, UnionInNestedNS type); +template +bool VerifyUnionInNestedNSVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum EnumInNestedNS : int8_t { EnumInNestedNS_A = 0, @@ -246,7 +248,8 @@ struct TableInNestedNS FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_foo(int32_t _foo = 0) { return SetField(VT_FOO, _foo, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_FOO, 4) && verifier.EndTable(); @@ -321,7 +324,8 @@ inline ::flatbuffers::Offset CreateTableInNestedNS(::flatbuffer _foo); } -inline bool VerifyUnionInNestedNS(::flatbuffers::Verifier &verifier, const void *obj, UnionInNestedNS type) { +template +inline bool VerifyUnionInNestedNS(::flatbuffers::VerifierTemplate &verifier, const void *obj, UnionInNestedNS type) { switch (type) { case UnionInNestedNS_NONE: { return true; @@ -334,7 +338,8 @@ inline bool VerifyUnionInNestedNS(::flatbuffers::Verifier &verifier, const void } } -inline bool VerifyUnionInNestedNSVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyUnionInNestedNSVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index 5a5c8dde233..9a290ad4c0e 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -126,7 +126,8 @@ struct TableInFirstNS FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { NamespaceA::NamespaceB::StructInNestedNS *mutable_foo_struct() { return GetStruct(VT_FOO_STRUCT); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_FOO_TABLE) && verifier.VerifyTable(foo_table()) && @@ -236,7 +237,8 @@ struct TableInC FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { NamespaceA::SecondTableInA *mutable_refer_to_a2() { return GetPointer(VT_REFER_TO_A2); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_REFER_TO_A1) && verifier.VerifyTable(refer_to_a1()) && @@ -316,7 +318,8 @@ struct SecondTableInA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { NamespaceC::TableInC *mutable_refer_to_c() { return GetPointer(VT_REFER_TO_C); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_REFER_TO_C) && verifier.VerifyTable(refer_to_c()) && diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index 29d33760320..fb1b96682ef 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -50,7 +50,8 @@ struct NativeInlineTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table bool mutate_a(int32_t _a = 0) { return SetField(VT_A, _a, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -108,7 +109,8 @@ struct TestNativeInlineTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Ta ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_t() { return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_T); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_T) && verifier.VerifyVector(t()) && diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 608c8d45b52..188d6e6cded 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -161,7 +161,8 @@ struct ApplicationData FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { Geometry::Vector3D *mutable_position_inline() { return GetStruct(VT_POSITION_INLINE); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_VECTORS) && verifier.VerifyVector(vectors()) && @@ -360,14 +361,16 @@ inline Geometry::ApplicationData *GetMutableSizePrefixedApplicationData(void *bu return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } +template inline bool VerifyApplicationDataBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); } +template inline bool VerifySizePrefixedApplicationDataBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(nullptr); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline void FinishApplicationDataBuffer( diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 2577248b0f2..21d63aaa159 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -357,7 +357,8 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_default_enum(optional_scalars::OptionalByte _default_enum = static_cast(1)) { return SetField(VT_DEFAULT_ENUM, static_cast(_default_enum), 1); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_JUST_I8, 1) && VerifyField(verifier, VT_MAYBE_I8, 1) && @@ -918,14 +919,16 @@ inline bool SizePrefixedScalarStuffBufferHasIdentifier(const void *buf) { buf, ScalarStuffIdentifier(), true); } +template inline bool VerifyScalarStuffBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(ScalarStuffIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(ScalarStuffIdentifier()); } +template inline bool VerifySizePrefixedScalarStuffBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(ScalarStuffIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(ScalarStuffIdentifier()); } inline const char *ScalarStuffExtension() { diff --git a/tests/test.cpp b/tests/test.cpp index c499ece1d20..eacc8478f4a 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -1254,6 +1254,35 @@ void NestedVerifierTest() { } } +void SizeVerifierTest() { + // Create a monster. + flatbuffers::FlatBufferBuilder builder; + FinishMonsterBuffer(builder, + CreateMonster(builder, nullptr, 0, 0, + builder.CreateString("NestedMonster"))); + size_t length = builder.GetSize(); + const uint8_t* data = builder.GetBufferPointer(); + + // Verify the monster, using SizeVerifier. + // We verify in several ways, using several different API functions/methods, + // to ensure that all of these APIs are tested. + flatbuffers::SizeVerifier size_verifier(data, + FLATBUFFERS_MAX_BUFFER_SIZE - 1); + { + TEST_EQ(true, VerifyMonsterBuffer(size_verifier)); + } + { + TEST_EQ(true, size_verifier.VerifyBuffer()); + } + { + const MyGame::Example::Monster* my_buffer = GetMonster(data); + TEST_EQ(true, my_buffer->Verify(size_verifier)); + } + + // Verify that the size verifier computed the correct size. + TEST_EQ(length, size_verifier.GetComputedSize()); +} + template void TestIterators(const std::vector& expected, const Container& tested) { TEST_ASSERT(tested.rbegin().base() == tested.end()); @@ -1725,6 +1754,7 @@ int FlatBufferTests(const std::string& tests_data_path) { FlatbuffersIteratorsTest(); WarningsAsErrorsTest(); NestedVerifierTest(); + SizeVerifierTest(); PrivateAnnotationsLeaks(); JsonUnsortedArrayTest(); VectorSpanTest(); diff --git a/tests/union_underlying_type_test_generated.h b/tests/union_underlying_type_test_generated.h index 541cdf716f1..8f131ab6dff 100644 --- a/tests/union_underlying_type_test_generated.h +++ b/tests/union_underlying_type_test_generated.h @@ -194,8 +194,10 @@ inline bool operator!=(const ABCUnion &lhs, const ABCUnion &rhs) { return !(lhs == rhs); } -bool VerifyABC(::flatbuffers::Verifier &verifier, const void *obj, ABC type); -bool VerifyABCVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyABC(::flatbuffers::VerifierTemplate &verifier, const void *obj, ABC type); +template +bool VerifyABCVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); struct AT : public ::flatbuffers::NativeTable { typedef A TableType; @@ -217,7 +219,8 @@ struct A FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_a(int32_t _a = 0) { return SetField(VT_A, _a, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -275,7 +278,8 @@ struct B FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::String *mutable_b() { return GetPointer<::flatbuffers::String *>(VT_B); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_B) && verifier.VerifyString(b()) && @@ -343,7 +347,8 @@ struct C FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_c(bool _c = 0) { return SetField(VT_C, static_cast(_c), 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_C, 1) && verifier.EndTable(); @@ -430,7 +435,8 @@ struct D FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_test_vector_of_union() { return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TEST_VECTOR_OF_UNION); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_TEST_UNION_TYPE, 1) && VerifyOffset(verifier, VT_TEST_UNION) && @@ -676,7 +682,8 @@ inline ::flatbuffers::Offset CreateD(::flatbuffers::FlatBufferBuilder &_fbb, _test_vector_of_union); } -inline bool VerifyABC(::flatbuffers::Verifier &verifier, const void *obj, ABC type) { +template +inline bool VerifyABC(::flatbuffers::VerifierTemplate &verifier, const void *obj, ABC type) { switch (type) { case ABC::NONE: { return true; @@ -697,7 +704,8 @@ inline bool VerifyABC(::flatbuffers::Verifier &verifier, const void *obj, ABC ty } } -inline bool VerifyABCVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyABCVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index c337abfd177..84e724f3cdd 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -212,8 +212,10 @@ inline bool operator!=(const CharacterUnion &lhs, const CharacterUnion &rhs) { return !(lhs == rhs); } -bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type); -bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type); +template +bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum Gadget : uint8_t { Gadget_NONE = 0, @@ -345,8 +347,10 @@ inline bool operator!=(const GadgetUnion &lhs, const GadgetUnion &rhs) { return !(lhs == rhs); } -bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type); -bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type); +template +bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { private: @@ -467,7 +471,8 @@ struct Attacker FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_sword_attack_damage(int32_t _sword_attack_damage = 0) { return SetField(VT_SWORD_ATTACK_DAMAGE, _sword_attack_damage, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_SWORD_ATTACK_DAMAGE, 4) && verifier.EndTable(); @@ -525,7 +530,8 @@ struct HandFan FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_length(int32_t _length = 0) { return SetField(VT_LENGTH, _length, 0); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LENGTH, 4) && verifier.EndTable(); @@ -620,7 +626,8 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_characters() { return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_CHARACTERS); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_MAIN_CHARACTER_TYPE, 1) && VerifyOffset(verifier, VT_MAIN_CHARACTER) && @@ -817,7 +824,8 @@ inline ::flatbuffers::Offset CreateMovie(::flatbuffers::FlatBufferBuilder _characters); } -inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, Character type) { +template +inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type) { switch (type) { case Character_NONE: { return true; @@ -827,13 +835,13 @@ inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, return verifier.VerifyTable(ptr); } case Character_Rapunzel: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Character_Belle: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Character_BookFan: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Character_Other: { auto ptr = reinterpret_cast(obj); @@ -847,7 +855,8 @@ inline bool VerifyCharacter(::flatbuffers::Verifier &verifier, const void *obj, } } -inline bool VerifyCharacterVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -990,13 +999,14 @@ inline void CharacterUnion::Reset() { type = Character_NONE; } -inline bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gadget type) { +template +inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type) { switch (type) { case Gadget_NONE: { return true; } case Gadget_FallingTub: { - return verifier.VerifyField(static_cast(obj), 0, 4); + return verifier.template VerifyField(static_cast(obj), 0, 4); } case Gadget_HandFan: { auto ptr = reinterpret_cast(obj); @@ -1006,7 +1016,8 @@ inline bool VerifyGadget(::flatbuffers::Verifier &verifier, const void *obj, Gad } } -inline bool VerifyGadgetVector(::flatbuffers::Verifier &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -1252,14 +1263,16 @@ inline bool SizePrefixedMovieBufferHasIdentifier(const void *buf) { buf, MovieIdentifier(), true); } +template inline bool VerifyMovieBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifyBuffer(MovieIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(MovieIdentifier()); } +template inline bool VerifySizePrefixedMovieBuffer( - ::flatbuffers::Verifier &verifier) { - return verifier.VerifySizePrefixedBuffer(MovieIdentifier()); + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(MovieIdentifier()); } inline void FinishMovieBuffer( From 796c7dbd1f54250561f6d67d9efa1e81dccd2a7e Mon Sep 17 00:00:00 2001 From: Fergus Henderson Date: Mon, 27 Oct 2025 18:56:19 +0000 Subject: [PATCH 2/4] Format using `sh scripts/clang-format-git.sh` --- src/idl_gen_cpp.cpp | 3 ++- src/idl_parser.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 7f245947565..7eb2bb3956c 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1098,7 +1098,8 @@ class CppGenerator : public BaseGenerator { return "template "; } - // For the subsequent definition, we must not redeclare the template default arguments. + // For the subsequent definition, we must not redeclare the template default + // arguments. std::string UnionVerifyTemplateDef() { return "template "; } diff --git a/src/idl_parser.cpp b/src/idl_parser.cpp index 24555aec48e..57a25189b9a 100644 --- a/src/idl_parser.cpp +++ b/src/idl_parser.cpp @@ -4352,8 +4352,8 @@ bool Parser::Deserialize(const uint8_t* buf, const size_t size) { size_prefixed = true; } auto verify_fn = size_prefixed - ? &reflection::VerifySizePrefixedSchemaBuffer - : &reflection::VerifySchemaBuffer; + ? &reflection::VerifySizePrefixedSchemaBuffer + : &reflection::VerifySchemaBuffer; if (!verify_fn(verifier)) { return false; } From 38736a546ffa038523319b4ab6c520f9d3e67428 Mon Sep 17 00:00:00 2001 From: Fergus Henderson Date: Mon, 10 Nov 2025 13:59:29 +0000 Subject: [PATCH 3/4] Use `B` rather than `TrackBufferSize` for the name of the template parameter. --- goldens/cpp/basic_generated.h | 16 ++-- include/flatbuffers/flex_flat_util.h | 4 +- include/flatbuffers/reflection_generated.h | 48 +++++------ include/flatbuffers/table.h | 32 +++---- samples/monster_generated.h | 32 +++---- src/idl_gen_cpp.cpp | 26 +++--- tests/64bit/evolution/v1_generated.h | 12 +-- tests/64bit/evolution/v2_generated.h | 12 +-- tests/64bit/test_64bit_generated.h | 16 ++-- .../generated_cpp17/monster_test_generated.h | 84 +++++++++---------- .../optional_scalars_generated.h | 12 +-- .../generated_cpp17/union_vector_generated.h | 52 ++++++------ tests/evolution_test/evolution_v1_generated.h | 36 ++++---- tests/evolution_test/evolution_v2_generated.h | 40 ++++----- tests/key_field/key_field_sample_generated.h | 12 +-- tests/monster_extra_generated.h | 12 +-- tests/monster_test_generated.h | 84 +++++++++---------- .../ext_only/monster_test_generated.hpp | 84 +++++++++---------- .../filesuffix_only/monster_test_suffix.h | 84 +++++++++---------- .../monster_test_suffix.hpp | 84 +++++++++---------- .../namespace_test1_generated.h | 20 ++--- .../namespace_test2_generated.h | 12 +-- tests/native_inline_table_test_generated.h | 8 +- tests/native_type_test_generated.h | 12 +-- tests/optional_scalars_generated.h | 12 +-- tests/union_underlying_type_test_generated.h | 32 +++---- tests/union_vector/union_vector_generated.h | 52 ++++++------ 27 files changed, 462 insertions(+), 468 deletions(-) diff --git a/goldens/cpp/basic_generated.h b/goldens/cpp/basic_generated.h index 7304b382acf..f0fd80258f3 100644 --- a/goldens/cpp/basic_generated.h +++ b/goldens/cpp/basic_generated.h @@ -30,8 +30,8 @@ struct Galaxy FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int64_t num_stars() const { return GetField(VT_NUM_STARS, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_NUM_STARS, 8) && verifier.EndTable(); @@ -76,8 +76,8 @@ struct Universe FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset> *galaxies() const { return GetPointer> *>(VT_GALAXIES); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_AGE, 8) && VerifyOffset(verifier, VT_GALAXIES) && @@ -137,15 +137,15 @@ inline const flatbuffers::goldens::Universe *GetSizePrefixedUniverse(const void return ::flatbuffers::GetSizePrefixedRoot(buf); } -template +template inline bool VerifyUniverseBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedUniverseBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/include/flatbuffers/flex_flat_util.h b/include/flatbuffers/flex_flat_util.h index 4b4b8f8fb91..70c0a45860b 100644 --- a/include/flatbuffers/flex_flat_util.h +++ b/include/flatbuffers/flex_flat_util.h @@ -23,10 +23,10 @@ namespace flexbuffers { // Verifies the `nested` flexbuffer within a flatbuffer vector is valid. -template +template inline bool VerifyNestedFlexBuffer( const flatbuffers::Vector* const nested, - flatbuffers::VerifierTemplate& verifier) { + flatbuffers::VerifierTemplate& verifier) { if (!nested) return true; return verifier.Check(flexbuffers::VerifyBuffer( nested->data(), nested->size(), verifier.GetFlexReuseTracker())); diff --git a/include/flatbuffers/reflection_generated.h b/include/flatbuffers/reflection_generated.h index 0c24320d7c0..9a9ed6b9b2b 100644 --- a/include/flatbuffers/reflection_generated.h +++ b/include/flatbuffers/reflection_generated.h @@ -196,8 +196,8 @@ struct Type FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { uint32_t element_size() const { return GetField(VT_ELEMENT_SIZE, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_BASE_TYPE, 1) && VerifyField(verifier, VT_ELEMENT, 1) && @@ -284,8 +284,8 @@ struct KeyValue FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *value() const { return GetPointer(VT_VALUE); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_KEY) && verifier.VerifyString(key()) && @@ -369,8 +369,8 @@ struct EnumVal FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset> *attributes() const { return GetPointer> *>(VT_ATTRIBUTES); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -498,8 +498,8 @@ struct Enum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *declaration_file() const { return GetPointer(VT_DECLARATION_FILE); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -679,8 +679,8 @@ struct Field FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool offset64() const { return GetField(VT_OFFSET64, 0) != 0; } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -885,8 +885,8 @@ struct Object FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *declaration_file() const { return GetPointer(VT_DECLARATION_FILE); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1034,8 +1034,8 @@ struct RPCCall FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *documentation() const { return GetPointer> *>(VT_DOCUMENTATION); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1158,8 +1158,8 @@ struct Service FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *declaration_file() const { return GetPointer(VT_DECLARATION_FILE); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -1275,8 +1275,8 @@ struct SchemaFile FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset<::flatbuffers::String>> *included_filenames() const { return GetPointer> *>(VT_INCLUDED_FILENAMES); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_FILENAME) && verifier.VerifyString(filename()) && @@ -1369,8 +1369,8 @@ struct Schema FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector<::flatbuffers::Offset> *fbs_files() const { return GetPointer> *>(VT_FBS_FILES); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffsetRequired(verifier, VT_OBJECTS) && verifier.VerifyVector(objects()) && @@ -1508,15 +1508,15 @@ inline bool SizePrefixedSchemaBufferHasIdentifier(const void *buf) { buf, SchemaIdentifier(), true); } -template +template inline bool VerifySchemaBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(SchemaIdentifier()); } -template +template inline bool VerifySizePrefixedSchemaBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(SchemaIdentifier()); } diff --git a/include/flatbuffers/table.h b/include/flatbuffers/table.h index 535d9c1fc48..0149216ff43 100644 --- a/include/flatbuffers/table.h +++ b/include/flatbuffers/table.h @@ -122,15 +122,15 @@ class Table { // Verify the vtable of this table. // Call this once per table, followed by VerifyField once per field. - template - bool VerifyTableStart(VerifierTemplate& verifier) const { + template + bool VerifyTableStart(VerifierTemplate& verifier) const { return verifier.VerifyTableStart(data_); } // Verify a particular field. - template - bool VerifyField(const VerifierTemplate& verifier, - voffset_t field, size_t align) const { + template + bool VerifyField(const VerifierTemplate& verifier, voffset_t field, + size_t align) const { // Calling GetOptionalFieldOffset should be safe now thanks to // VerifyTable(). auto field_offset = GetOptionalFieldOffset(field); @@ -140,39 +140,39 @@ class Table { } // VerifyField for required fields. - template - bool VerifyFieldRequired(const VerifierTemplate& verifier, - voffset_t field, size_t align) const { + template + bool VerifyFieldRequired(const VerifierTemplate& verifier, voffset_t field, + size_t align) const { auto field_offset = GetOptionalFieldOffset(field); return verifier.Check(field_offset != 0) && verifier.template VerifyField(data_, field_offset, align); } // Versions for offsets. - template - bool VerifyOffset(const VerifierTemplate& verifier, + template + bool VerifyOffset(const VerifierTemplate& verifier, voffset_t field) const { auto field_offset = GetOptionalFieldOffset(field); return !field_offset || verifier.template VerifyOffset(data_, field_offset); } - template - bool VerifyOffsetRequired(const VerifierTemplate& verifier, + template + bool VerifyOffsetRequired(const VerifierTemplate& verifier, voffset_t field) const { auto field_offset = GetOptionalFieldOffset(field); return verifier.Check(field_offset != 0) && verifier.template VerifyOffset(data_, field_offset); } - template - bool VerifyOffset64(const VerifierTemplate& verifier, + template + bool VerifyOffset64(const VerifierTemplate& verifier, voffset_t field) const { return VerifyOffset(verifier, field); } - template - bool VerifyOffset64Required(const VerifierTemplate& verifier, + template + bool VerifyOffset64Required(const VerifierTemplate& verifier, voffset_t field) const { return VerifyOffsetRequired(verifier, field); } diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 461abf2ef42..a0facac9603 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -179,10 +179,10 @@ inline bool operator!=(const EquipmentUnion &lhs, const EquipmentUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyEquipment(::flatbuffers::VerifierTemplate &verifier, const void *obj, Equipment type); -template -bool VerifyEquipmentVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyEquipment(::flatbuffers::VerifierTemplate &verifier, const void *obj, Equipment type); +template +bool VerifyEquipmentVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Vec3 FLATBUFFERS_FINAL_CLASS { private: @@ -333,8 +333,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_path() { return GetPointer<::flatbuffers::Vector *>(VT_PATH); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 4) && VerifyField(verifier, VT_MANA, 2) && @@ -494,8 +494,8 @@ struct Weapon FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_damage(int16_t _damage = 0) { return SetField(VT_DAMAGE, _damage, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_NAME) && verifier.VerifyString(name()) && @@ -690,8 +690,8 @@ inline ::flatbuffers::Offset Weapon::Pack(::flatbuffers::FlatBufferBuild _damage); } -template -inline bool VerifyEquipment(::flatbuffers::VerifierTemplate &verifier, const void *obj, Equipment type) { +template +inline bool VerifyEquipment(::flatbuffers::VerifierTemplate &verifier, const void *obj, Equipment type) { switch (type) { case Equipment_NONE: { return true; @@ -704,8 +704,8 @@ inline bool VerifyEquipment(::flatbuffers::VerifierTemplate &ve } } -template -inline bool VerifyEquipmentVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyEquipmentVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -889,15 +889,15 @@ inline MyGame::Sample::Monster *GetMutableSizePrefixedMonster(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } -template +template inline bool VerifyMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index d8ba6cf5abf..d3441db4c0c 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -681,18 +681,16 @@ class CppGenerator : public BaseGenerator { code_.SetValue("ID", "nullptr"); } - code_ += "template "; + code_ += "template "; code_ += "inline bool Verify{{STRUCT_NAME}}Buffer("; - code_ += - " ::flatbuffers::VerifierTemplate &verifier) {"; + code_ += " ::flatbuffers::VerifierTemplate &verifier) {"; code_ += " return verifier.template VerifyBuffer<{{CPP_NAME}}>({{ID}});"; code_ += "}"; code_ += ""; - code_ += "template "; + code_ += "template "; code_ += "inline bool VerifySizePrefixed{{STRUCT_NAME}}Buffer("; - code_ += - " ::flatbuffers::VerifierTemplate &verifier) {"; + code_ += " ::flatbuffers::VerifierTemplate &verifier) {"; code_ += " return " "verifier.template " @@ -1109,21 +1107,17 @@ class CppGenerator : public BaseGenerator { // For the initial declaration, we specify the template parameters, // including template default arguments. - std::string UnionVerifyTemplateDecl() { - return "template "; - } + std::string UnionVerifyTemplateDecl() { return "template "; } // For the subsequent definition, we must not redeclare the template default // arguments. - std::string UnionVerifyTemplateDef() { - return "template "; - } + std::string UnionVerifyTemplateDef() { return "template "; } // Should be used in conjunction with // UnionVerifyTemplateDecl()/UnionVerifyTemplateDef(). std::string UnionVerifySignature(const EnumDef& enum_def) { return "bool Verify" + Name(enum_def) + - "(::flatbuffers::VerifierTemplate &verifier, " + + "(::flatbuffers::VerifierTemplate &verifier, " + "const void *obj, " + Name(enum_def) + " type)"; } @@ -1135,7 +1129,7 @@ class CppGenerator : public BaseGenerator { opts_.scoped_enums ? name : GenTypeBasic(enum_def.underlying_type, false); return "bool Verify" + name + "Vector" + - "(::flatbuffers::VerifierTemplate &verifier, " + + "(::flatbuffers::VerifierTemplate &verifier, " + "const ::flatbuffers::Vector<::flatbuffers::Offset> " "*values, " + "const ::flatbuffers::Vector<" + type + "> *types)"; @@ -3026,9 +3020,9 @@ class CppGenerator : public BaseGenerator { // Generate a verifier function that can check a buffer from an untrusted // source will never cause reads outside the buffer. - code_ += " template "; + code_ += " template "; code_ += - " bool Verify(::flatbuffers::VerifierTemplate " + " bool Verify(::flatbuffers::VerifierTemplate " "&verifier) const {"; code_ += " return VerifyTableStart(verifier)\\"; for (const auto& field : struct_def.fields.vec) { diff --git a/tests/64bit/evolution/v1_generated.h b/tests/64bit/evolution/v1_generated.h index b9b8ed25f9f..a4222eb5d1e 100644 --- a/tests/64bit/evolution/v1_generated.h +++ b/tests/64bit/evolution/v1_generated.h @@ -52,8 +52,8 @@ struct RootTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_b() { return GetPointer<::flatbuffers::Vector *>(VT_B); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyOffset(verifier, VT_B) && @@ -181,15 +181,15 @@ inline v1::RootTable *GetMutableSizePrefixedRootTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } -template +template inline bool VerifyRootTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedRootTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/tests/64bit/evolution/v2_generated.h b/tests/64bit/evolution/v2_generated.h index 00249ae65ab..ee618639d2f 100644 --- a/tests/64bit/evolution/v2_generated.h +++ b/tests/64bit/evolution/v2_generated.h @@ -60,8 +60,8 @@ struct RootTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector64 *mutable_big_vector() { return GetPointer64<::flatbuffers::Vector64 *>(VT_BIG_VECTOR); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyOffset(verifier, VT_B) && @@ -205,15 +205,15 @@ inline v2::RootTable *GetMutableSizePrefixedRootTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } -template +template inline bool VerifyRootTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedRootTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/tests/64bit/test_64bit_generated.h b/tests/64bit/test_64bit_generated.h index 2100e3743c9..4d669dc0bce 100644 --- a/tests/64bit/test_64bit_generated.h +++ b/tests/64bit/test_64bit_generated.h @@ -108,8 +108,8 @@ struct WrapperTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vector() { return GetPointer64<::flatbuffers::Vector *>(VT_VECTOR); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset64(verifier, VT_VECTOR) && verifier.VerifyVector(vector()) && @@ -259,8 +259,8 @@ struct RootTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector64 *mutable_forced_aligned_vector() { return GetPointer64<::flatbuffers::Vector64 *>(VT_FORCED_ALIGNED_VECTOR); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset64(verifier, VT_FAR_VECTOR) && verifier.VerifyVector(far_vector()) && @@ -618,15 +618,15 @@ inline RootTable *GetMutableSizePrefixedRootTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } -template +template inline bool VerifyRootTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedRootTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/tests/cpp17/generated_cpp17/monster_test_generated.h b/tests/cpp17/generated_cpp17/monster_test_generated.h index 1be5fa3a3f2..c056e38f49d 100644 --- a/tests/cpp17/generated_cpp17/monster_test_generated.h +++ b/tests/cpp17/generated_cpp17/monster_test_generated.h @@ -323,10 +323,10 @@ struct AnyUnion { } }; -template -bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); -template -bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class AnyUniqueAliases : uint8_t { NONE = 0, @@ -452,10 +452,10 @@ struct AnyUniqueAliasesUnion { } }; -template -bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); -template -bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class AnyAmbiguousAliases : uint8_t { NONE = 0, @@ -539,10 +539,10 @@ struct AnyAmbiguousAliasesUnion { } }; -template -bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); -template -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -887,8 +887,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -942,8 +942,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1014,8 +1014,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: if constexpr (Index == 0) return color(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1116,8 +1116,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 2) return count(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1228,8 +1228,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { if constexpr (Index == 0) return id(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1897,8 +1897,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 60) return double_inf_default(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -2704,8 +2704,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 11) return vf64(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3398,8 +3398,8 @@ inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatB _vf64); } -template -inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any::NONE: { return true; @@ -3420,8 +3420,8 @@ inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier } } -template -inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3513,8 +3513,8 @@ inline void AnyUnion::Reset() { type = Any::NONE; } -template -inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases::NONE: { return true; @@ -3535,8 +3535,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3628,8 +3628,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases::NONE; } -template -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases::NONE: { return true; @@ -3650,8 +3650,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4260,15 +4260,15 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } -template +template inline bool VerifyMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MonsterIdentifier()); } -template +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } diff --git a/tests/cpp17/generated_cpp17/optional_scalars_generated.h b/tests/cpp17/generated_cpp17/optional_scalars_generated.h index 3f048e867ac..bb415c7692c 100644 --- a/tests/cpp17/generated_cpp17/optional_scalars_generated.h +++ b/tests/cpp17/generated_cpp17/optional_scalars_generated.h @@ -395,8 +395,8 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 35) return default_enum(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_JUST_I8, 1) && VerifyField(verifier, VT_MAYBE_I8, 1) && @@ -959,15 +959,15 @@ inline bool SizePrefixedScalarStuffBufferHasIdentifier(const void *buf) { buf, ScalarStuffIdentifier(), true); } -template +template inline bool VerifyScalarStuffBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(ScalarStuffIdentifier()); } -template +template inline bool VerifySizePrefixedScalarStuffBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(ScalarStuffIdentifier()); } diff --git a/tests/cpp17/generated_cpp17/union_vector_generated.h b/tests/cpp17/generated_cpp17/union_vector_generated.h index bed386ff86c..e81f1d6a359 100644 --- a/tests/cpp17/generated_cpp17/union_vector_generated.h +++ b/tests/cpp17/generated_cpp17/union_vector_generated.h @@ -158,10 +158,10 @@ struct CharacterUnion { } }; -template -bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type); -template -bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type); +template +bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum class Gadget : uint8_t { NONE = 0, @@ -268,10 +268,10 @@ struct GadgetUnion { } }; -template -bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type); -template -bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type); +template +bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { private: @@ -422,8 +422,8 @@ struct Attacker FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { if constexpr (Index == 0) return sword_attack_damage(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_SWORD_ATTACK_DAMAGE, 4) && verifier.EndTable(); @@ -500,8 +500,8 @@ struct HandFan FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { if constexpr (Index == 0) return length(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LENGTH, 4) && verifier.EndTable(); @@ -618,8 +618,8 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { else if constexpr (Index == 3) return characters(); else static_assert(Index != -1, "Invalid Field Index"); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_MAIN_CHARACTER_TYPE, 1) && VerifyOffset(verifier, VT_MAIN_CHARACTER) && @@ -798,8 +798,8 @@ inline ::flatbuffers::Offset Movie::Pack(::flatbuffers::FlatBufferBuilder _characters); } -template -inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type) { +template +inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type) { switch (type) { case Character::NONE: { return true; @@ -829,8 +829,8 @@ inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &ve } } -template -inline bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -973,8 +973,8 @@ inline void CharacterUnion::Reset() { type = Character::NONE; } -template -inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type) { +template +inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type) { switch (type) { case Gadget::NONE: { return true; @@ -990,8 +990,8 @@ inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verif } } -template -inline bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -1237,15 +1237,15 @@ inline bool SizePrefixedMovieBufferHasIdentifier(const void *buf) { buf, MovieIdentifier(), true); } -template +template inline bool VerifyMovieBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MovieIdentifier()); } -template +template inline bool VerifySizePrefixedMovieBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MovieIdentifier()); } diff --git a/tests/evolution_test/evolution_v1_generated.h b/tests/evolution_test/evolution_v1_generated.h index 023edcd35f5..827d058aed0 100644 --- a/tests/evolution_test/evolution_v1_generated.h +++ b/tests/evolution_test/evolution_v1_generated.h @@ -102,10 +102,10 @@ template<> struct UnionTraits { static const Union enum_value = Union::TableB; }; -template -bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type); -template -bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type); +template +bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { private: @@ -158,8 +158,8 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int32_t b() const { return GetField(VT_B, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -206,8 +206,8 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int32_t a() const { return GetField(VT_A, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -306,8 +306,8 @@ struct Root FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const Evolution::V1::TableB *j_as_TableB() const { return j_type() == Evolution::V1::Union::TableB ? static_cast(j()) : nullptr; } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 1) && @@ -460,8 +460,8 @@ inline ::flatbuffers::Offset CreateRootDirect( j); } -template -inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type) { +template +inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type) { switch (type) { case Union::NONE: { return true; @@ -478,8 +478,8 @@ inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifi } } -template -inline bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -499,15 +499,15 @@ inline const Evolution::V1::Root *GetSizePrefixedRoot(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot(buf); } -template +template inline bool VerifyRootBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedRootBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/tests/evolution_test/evolution_v2_generated.h b/tests/evolution_test/evolution_v2_generated.h index 768142896ef..885830d4caa 100644 --- a/tests/evolution_test/evolution_v2_generated.h +++ b/tests/evolution_test/evolution_v2_generated.h @@ -118,10 +118,10 @@ template<> struct UnionTraits { static const Union enum_value = Union::TableC; }; -template -bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type); -template -bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type); +template +bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) Struct FLATBUFFERS_FINAL_CLASS { private: @@ -178,8 +178,8 @@ struct TableA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *c() const { return GetPointer(VT_C); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -246,8 +246,8 @@ struct TableB FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int32_t a() const { return GetField(VT_A, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -292,8 +292,8 @@ struct TableC FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::String *b() const { return GetPointer(VT_B); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 8) && VerifyOffset(verifier, VT_B) && @@ -402,8 +402,8 @@ struct Root FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { uint8_t l() const { return GetField(VT_L, 56); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_B, 1) && VerifyField(verifier, VT_C_TYPE, 1) && @@ -544,8 +544,8 @@ inline ::flatbuffers::Offset CreateRootDirect( l); } -template -inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type) { +template +inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifier, const void *obj, Union type) { switch (type) { case Union::NONE: { return true; @@ -566,8 +566,8 @@ inline bool VerifyUnion(::flatbuffers::VerifierTemplate &verifi } } -template -inline bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyUnionVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -587,15 +587,15 @@ inline const Evolution::V2::Root *GetSizePrefixedRoot(const void *buf) { return ::flatbuffers::GetSizePrefixedRoot(buf); } -template +template inline bool VerifyRootBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedRootBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/tests/key_field/key_field_sample_generated.h b/tests/key_field/key_field_sample_generated.h index 5f3ef279e79..cba74688fa6 100644 --- a/tests/key_field/key_field_sample_generated.h +++ b/tests/key_field/key_field_sample_generated.h @@ -634,8 +634,8 @@ struct FooTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_h() { return GetPointer<::flatbuffers::Vector *>(VT_H); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && VerifyField(verifier, VT_B, 4) && @@ -991,15 +991,15 @@ inline keyfield::sample::FooTable *GetMutableSizePrefixedFooTable(void *buf) { return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } -template +template inline bool VerifyFooTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedFooTableBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/tests/monster_extra_generated.h b/tests/monster_extra_generated.h index 2138a9ab33a..a87f7d92438 100644 --- a/tests/monster_extra_generated.h +++ b/tests/monster_extra_generated.h @@ -116,8 +116,8 @@ struct MonsterExtra FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_fvec() { return GetPointer<::flatbuffers::Vector *>(VT_FVEC); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_D0, 8) && VerifyField(verifier, VT_D1, 8) && @@ -375,15 +375,15 @@ inline bool SizePrefixedMonsterExtraBufferHasIdentifier(const void *buf) { buf, MonsterExtraIdentifier(), true); } -template +template inline bool VerifyMonsterExtraBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MonsterExtraIdentifier()); } -template +template inline bool VerifySizePrefixedMonsterExtraBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MonsterExtraIdentifier()); } diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 4fbfdf97c80..594670baa7b 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -386,10 +386,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); -template -bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -544,10 +544,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -template -bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); -template -bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -660,10 +660,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -template -bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); -template -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -959,8 +959,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1005,8 +1005,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1063,8 +1063,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1145,8 +1145,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1237,8 +1237,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1828,8 +1828,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -2546,8 +2546,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3361,8 +3361,8 @@ inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatB _vf64); } -template -inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3383,8 +3383,8 @@ inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier } } -template -inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3476,8 +3476,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -template -inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3498,8 +3498,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3591,8 +3591,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -template -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3613,8 +3613,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4223,15 +4223,15 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } -template +template inline bool VerifyMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MonsterIdentifier()); } -template +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } diff --git a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp index cde02153f26..b3db30d3be2 100644 --- a/tests/monster_test_suffix/ext_only/monster_test_generated.hpp +++ b/tests/monster_test_suffix/ext_only/monster_test_generated.hpp @@ -383,10 +383,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); -template -bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -541,10 +541,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -template -bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); -template -bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -657,10 +657,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -template -bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); -template -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -955,8 +955,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1000,8 +1000,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1057,8 +1057,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1138,8 +1138,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1229,8 +1229,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1819,8 +1819,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -2536,8 +2536,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3351,8 +3351,8 @@ inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatB _vf64); } -template -inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3373,8 +3373,8 @@ inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier } } -template -inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3466,8 +3466,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -template -inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3488,8 +3488,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3581,8 +3581,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -template -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3603,8 +3603,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4213,15 +4213,15 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } -template +template inline bool VerifyMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MonsterIdentifier()); } -template +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } diff --git a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h index cde02153f26..b3db30d3be2 100644 --- a/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h +++ b/tests/monster_test_suffix/filesuffix_only/monster_test_suffix.h @@ -383,10 +383,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); -template -bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -541,10 +541,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -template -bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); -template -bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -657,10 +657,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -template -bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); -template -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -955,8 +955,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1000,8 +1000,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1057,8 +1057,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1138,8 +1138,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1229,8 +1229,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1819,8 +1819,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -2536,8 +2536,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3351,8 +3351,8 @@ inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatB _vf64); } -template -inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3373,8 +3373,8 @@ inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier } } -template -inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3466,8 +3466,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -template -inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3488,8 +3488,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3581,8 +3581,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -template -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3603,8 +3603,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4213,15 +4213,15 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } -template +template inline bool VerifyMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MonsterIdentifier()); } -template +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } diff --git a/tests/monster_test_suffix/monster_test_suffix.hpp b/tests/monster_test_suffix/monster_test_suffix.hpp index cde02153f26..b3db30d3be2 100644 --- a/tests/monster_test_suffix/monster_test_suffix.hpp +++ b/tests/monster_test_suffix/monster_test_suffix.hpp @@ -383,10 +383,10 @@ inline bool operator!=(const AnyUnion &lhs, const AnyUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); -template -bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type); +template +bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyUniqueAliases : uint8_t { AnyUniqueAliases_NONE = 0, @@ -541,10 +541,10 @@ inline bool operator!=(const AnyUniqueAliasesUnion &lhs, const AnyUniqueAliasesU return !(lhs == rhs); } -template -bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); -template -bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type); +template +bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum AnyAmbiguousAliases : uint8_t { AnyAmbiguousAliases_NONE = 0, @@ -657,10 +657,10 @@ inline bool operator!=(const AnyAmbiguousAliasesUnion &lhs, const AnyAmbiguousAl return !(lhs == rhs); } -template -bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); -template -bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type); +template +bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(2) Test FLATBUFFERS_FINAL_CLASS { private: @@ -955,8 +955,8 @@ struct InParentNamespace FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return InParentNamespaceTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1000,8 +1000,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { return MonsterTypeTable(); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && verifier.EndTable(); } @@ -1057,8 +1057,8 @@ struct TestSimpleTableWithEnum FLATBUFFERS_FINAL_CLASS : private ::flatbuffers:: bool mutate_color(MyGame::Example::Color _color = static_cast(2)) { return SetField(VT_COLOR, static_cast(_color), 2); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_COLOR, 1) && verifier.EndTable(); @@ -1138,8 +1138,8 @@ struct Stat FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint16_t _count) const { return static_cast(count() > _count) - static_cast(count() < _count); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_ID) && verifier.VerifyString(id()) && @@ -1229,8 +1229,8 @@ struct Referrable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { int KeyCompareWithValue(uint64_t _id) const { return static_cast(id() > _id) - static_cast(id() < _id); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ID, 8) && verifier.EndTable(); @@ -1819,8 +1819,8 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_double_inf_default(double _double_inf_default = std::numeric_limits::infinity()) { return SetField(VT_DOUBLE_INF_DEFAULT, _double_inf_default, std::numeric_limits::infinity()); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_POS, 8) && VerifyField(verifier, VT_MANA, 2) && @@ -2536,8 +2536,8 @@ struct TypeAliases FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_vf64() { return GetPointer<::flatbuffers::Vector *>(VT_VF64); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_I8, 1) && VerifyField(verifier, VT_U8, 1) && @@ -3351,8 +3351,8 @@ inline ::flatbuffers::Offset TypeAliases::Pack(::flatbuffers::FlatB _vf64); } -template -inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { +template +inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier, const void *obj, Any type) { switch (type) { case Any_NONE: { return true; @@ -3373,8 +3373,8 @@ inline bool VerifyAny(::flatbuffers::VerifierTemplate &verifier } } -template -inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3466,8 +3466,8 @@ inline void AnyUnion::Reset() { type = Any_NONE; } -template -inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { +template +inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyUniqueAliases type) { switch (type) { case AnyUniqueAliases_NONE: { return true; @@ -3488,8 +3488,8 @@ inline bool VerifyAnyUniqueAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyUniqueAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -3581,8 +3581,8 @@ inline void AnyUniqueAliasesUnion::Reset() { type = AnyUniqueAliases_NONE; } -template -inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { +template +inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate &verifier, const void *obj, AnyAmbiguousAliases type) { switch (type) { case AnyAmbiguousAliases_NONE: { return true; @@ -3603,8 +3603,8 @@ inline bool VerifyAnyAmbiguousAliases(::flatbuffers::VerifierTemplate -inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyAnyAmbiguousAliasesVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -4213,15 +4213,15 @@ inline bool SizePrefixedMonsterBufferHasIdentifier(const void *buf) { buf, MonsterIdentifier(), true); } -template +template inline bool VerifyMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MonsterIdentifier()); } -template +template inline bool VerifySizePrefixedMonsterBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MonsterIdentifier()); } diff --git a/tests/namespace_test/namespace_test1_generated.h b/tests/namespace_test/namespace_test1_generated.h index b2f86e00cb5..50d0e487b55 100644 --- a/tests/namespace_test/namespace_test1_generated.h +++ b/tests/namespace_test/namespace_test1_generated.h @@ -138,10 +138,10 @@ inline bool operator!=(const UnionInNestedNSUnion &lhs, const UnionInNestedNSUni return !(lhs == rhs); } -template -bool VerifyUnionInNestedNS(::flatbuffers::VerifierTemplate &verifier, const void *obj, UnionInNestedNS type); -template -bool VerifyUnionInNestedNSVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyUnionInNestedNS(::flatbuffers::VerifierTemplate &verifier, const void *obj, UnionInNestedNS type); +template +bool VerifyUnionInNestedNSVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum EnumInNestedNS : int8_t { EnumInNestedNS_A = 0, @@ -248,8 +248,8 @@ struct TableInNestedNS FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_foo(int32_t _foo = 0) { return SetField(VT_FOO, _foo, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_FOO, 4) && verifier.EndTable(); @@ -324,8 +324,8 @@ inline ::flatbuffers::Offset TableInNestedNS::Pack(::flatbuffer _foo); } -template -inline bool VerifyUnionInNestedNS(::flatbuffers::VerifierTemplate &verifier, const void *obj, UnionInNestedNS type) { +template +inline bool VerifyUnionInNestedNS(::flatbuffers::VerifierTemplate &verifier, const void *obj, UnionInNestedNS type) { switch (type) { case UnionInNestedNS_NONE: { return true; @@ -338,8 +338,8 @@ inline bool VerifyUnionInNestedNS(::flatbuffers::VerifierTemplate -inline bool VerifyUnionInNestedNSVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyUnionInNestedNSVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { diff --git a/tests/namespace_test/namespace_test2_generated.h b/tests/namespace_test/namespace_test2_generated.h index 8270b39c569..99c661057ef 100644 --- a/tests/namespace_test/namespace_test2_generated.h +++ b/tests/namespace_test/namespace_test2_generated.h @@ -126,8 +126,8 @@ struct TableInFirstNS FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { NamespaceA::NamespaceB::StructInNestedNS *mutable_foo_struct() { return GetStruct(VT_FOO_STRUCT); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_FOO_TABLE) && verifier.VerifyTable(foo_table()) && @@ -237,8 +237,8 @@ struct TableInC FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { NamespaceA::SecondTableInA *mutable_refer_to_a2() { return GetPointer(VT_REFER_TO_A2); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_REFER_TO_A1) && verifier.VerifyTable(refer_to_a1()) && @@ -318,8 +318,8 @@ struct SecondTableInA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { NamespaceC::TableInC *mutable_refer_to_c() { return GetPointer(VT_REFER_TO_C); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_REFER_TO_C) && verifier.VerifyTable(refer_to_c()) && diff --git a/tests/native_inline_table_test_generated.h b/tests/native_inline_table_test_generated.h index f82a0f87b5b..3bcdab09b7c 100644 --- a/tests/native_inline_table_test_generated.h +++ b/tests/native_inline_table_test_generated.h @@ -50,8 +50,8 @@ struct NativeInlineTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table bool mutate_a(int32_t _a = 0) { return SetField(VT_A, _a, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -109,8 +109,8 @@ struct TestNativeInlineTable FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Ta ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_t() { return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_T); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_T) && verifier.VerifyVector(t()) && diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 719ba27a042..48a33c6438c 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -278,8 +278,8 @@ struct ApplicationData FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_matrices() { return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_MATRICES); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_VECTORS) && verifier.VerifyVector(vectors()) && @@ -557,15 +557,15 @@ inline Geometry::ApplicationData *GetMutableSizePrefixedApplicationData(void *bu return ::flatbuffers::GetMutableSizePrefixedRoot(buf); } -template +template inline bool VerifyApplicationDataBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(nullptr); } -template +template inline bool VerifySizePrefixedApplicationDataBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(nullptr); } diff --git a/tests/optional_scalars_generated.h b/tests/optional_scalars_generated.h index 4989a52f8c2..08338dfe337 100644 --- a/tests/optional_scalars_generated.h +++ b/tests/optional_scalars_generated.h @@ -357,8 +357,8 @@ struct ScalarStuff FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_default_enum(optional_scalars::OptionalByte _default_enum = static_cast(1)) { return SetField(VT_DEFAULT_ENUM, static_cast(_default_enum), 1); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_JUST_I8, 1) && VerifyField(verifier, VT_MAYBE_I8, 1) && @@ -919,15 +919,15 @@ inline bool SizePrefixedScalarStuffBufferHasIdentifier(const void *buf) { buf, ScalarStuffIdentifier(), true); } -template +template inline bool VerifyScalarStuffBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(ScalarStuffIdentifier()); } -template +template inline bool VerifySizePrefixedScalarStuffBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(ScalarStuffIdentifier()); } diff --git a/tests/union_underlying_type_test_generated.h b/tests/union_underlying_type_test_generated.h index b1c7d5a3222..74ec1f9563b 100644 --- a/tests/union_underlying_type_test_generated.h +++ b/tests/union_underlying_type_test_generated.h @@ -194,10 +194,10 @@ inline bool operator!=(const ABCUnion &lhs, const ABCUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyABC(::flatbuffers::VerifierTemplate &verifier, const void *obj, ABC type); -template -bool VerifyABCVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyABC(::flatbuffers::VerifierTemplate &verifier, const void *obj, ABC type); +template +bool VerifyABCVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); struct AT : public ::flatbuffers::NativeTable { typedef A TableType; @@ -219,8 +219,8 @@ struct A FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_a(int32_t _a = 0) { return SetField(VT_A, _a, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_A, 4) && verifier.EndTable(); @@ -278,8 +278,8 @@ struct B FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::String *mutable_b() { return GetPointer<::flatbuffers::String *>(VT_B); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyOffset(verifier, VT_B) && verifier.VerifyString(b()) && @@ -347,8 +347,8 @@ struct C FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_c(bool _c = 0) { return SetField(VT_C, static_cast(_c), 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_C, 1) && verifier.EndTable(); @@ -435,8 +435,8 @@ struct D FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_test_vector_of_union() { return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_TEST_VECTOR_OF_UNION); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_TEST_UNION_TYPE, 1) && VerifyOffset(verifier, VT_TEST_UNION) && @@ -682,8 +682,8 @@ inline ::flatbuffers::Offset D::Pack(::flatbuffers::FlatBufferBuilder &_fbb, _test_vector_of_union); } -template -inline bool VerifyABC(::flatbuffers::VerifierTemplate &verifier, const void *obj, ABC type) { +template +inline bool VerifyABC(::flatbuffers::VerifierTemplate &verifier, const void *obj, ABC type) { switch (type) { case ABC::NONE: { return true; @@ -704,8 +704,8 @@ inline bool VerifyABC(::flatbuffers::VerifierTemplate &verifier } } -template -inline bool VerifyABCVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyABCVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index ddbac9bac36..1117efd80e8 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -212,10 +212,10 @@ inline bool operator!=(const CharacterUnion &lhs, const CharacterUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type); -template -bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type); +template +bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); enum Gadget : uint8_t { Gadget_NONE = 0, @@ -347,10 +347,10 @@ inline bool operator!=(const GadgetUnion &lhs, const GadgetUnion &rhs) { return !(lhs == rhs); } -template -bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type); -template -bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); +template +bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type); +template +bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types); FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(4) Rapunzel FLATBUFFERS_FINAL_CLASS { private: @@ -471,8 +471,8 @@ struct Attacker FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_sword_attack_damage(int32_t _sword_attack_damage = 0) { return SetField(VT_SWORD_ATTACK_DAMAGE, _sword_attack_damage, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_SWORD_ATTACK_DAMAGE, 4) && verifier.EndTable(); @@ -530,8 +530,8 @@ struct HandFan FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { bool mutate_length(int32_t _length = 0) { return SetField(VT_LENGTH, _length, 0); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_LENGTH, 4) && verifier.EndTable(); @@ -626,8 +626,8 @@ struct Movie FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector<::flatbuffers::Offset> *mutable_characters() { return GetPointer<::flatbuffers::Vector<::flatbuffers::Offset> *>(VT_CHARACTERS); } - template - bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_MAIN_CHARACTER_TYPE, 1) && VerifyOffset(verifier, VT_MAIN_CHARACTER) && @@ -824,8 +824,8 @@ inline ::flatbuffers::Offset Movie::Pack(::flatbuffers::FlatBufferBuilder _characters); } -template -inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type) { +template +inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &verifier, const void *obj, Character type) { switch (type) { case Character_NONE: { return true; @@ -855,8 +855,8 @@ inline bool VerifyCharacter(::flatbuffers::VerifierTemplate &ve } } -template -inline bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyCharacterVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -999,8 +999,8 @@ inline void CharacterUnion::Reset() { type = Character_NONE; } -template -inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type) { +template +inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verifier, const void *obj, Gadget type) { switch (type) { case Gadget_NONE: { return true; @@ -1016,8 +1016,8 @@ inline bool VerifyGadget(::flatbuffers::VerifierTemplate &verif } } -template -inline bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { +template +inline bool VerifyGadgetVector(::flatbuffers::VerifierTemplate &verifier, const ::flatbuffers::Vector<::flatbuffers::Offset> *values, const ::flatbuffers::Vector *types) { if (!values || !types) return !values && !types; if (values->size() != types->size()) return false; for (::flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { @@ -1263,15 +1263,15 @@ inline bool SizePrefixedMovieBufferHasIdentifier(const void *buf) { buf, MovieIdentifier(), true); } -template +template inline bool VerifyMovieBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifyBuffer(MovieIdentifier()); } -template +template inline bool VerifySizePrefixedMovieBuffer( - ::flatbuffers::VerifierTemplate &verifier) { + ::flatbuffers::VerifierTemplate &verifier) { return verifier.template VerifySizePrefixedBuffer(MovieIdentifier()); } From bdaac7a4a6b92b9e98e6a79a282bb9a8aaf323a6 Mon Sep 17 00:00:00 2001 From: Fergus Henderson Date: Mon, 10 Nov 2025 15:19:08 +0000 Subject: [PATCH 4/4] Update generated files. --- tests/native_type_test_generated.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/native_type_test_generated.h b/tests/native_type_test_generated.h index 48a33c6438c..e128138487e 100644 --- a/tests/native_type_test_generated.h +++ b/tests/native_type_test_generated.h @@ -150,7 +150,8 @@ struct Matrix FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { ::flatbuffers::Vector *mutable_values() { return GetPointer<::flatbuffers::Vector *>(VT_VALUES); } - bool Verify(::flatbuffers::Verifier &verifier) const { + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && VerifyField(verifier, VT_ROWS, 4) && VerifyField(verifier, VT_COLUMNS, 4) &&