diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 4c31d5e75..baf3fe74c 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -548,6 +548,7 @@ inline bool VerifyEquipment(flatbuffers::Verifier &verifier, const void *obj, Eq } inline bool VerifyEquipmentVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *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) { if (!VerifyEquipment( diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 6420ba722..f582aa8f2 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1100,6 +1100,7 @@ class CppGenerator : public BaseGenerator { code_ += ""; code_ += "inline " + UnionVectorVerifySignature(enum_def) + " {"; + code_ += " if (!values || !types) return !values && !types;"; code_ += " if (values->size() != types->size()) return false;"; code_ += " for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) {"; code_ += " if (!Verify" + Name(enum_def) + "("; diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index 14a2ae82c..8f939cd5f 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -1802,6 +1802,7 @@ inline bool VerifyAny(flatbuffers::Verifier &verifier, const void *obj, Any type } inline bool VerifyAnyVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *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) { if (!VerifyAny( diff --git a/tests/union_vector/union_vector_generated.h b/tests/union_vector/union_vector_generated.h index 3222fb0d2..14c3cc91f 100644 --- a/tests/union_vector/union_vector_generated.h +++ b/tests/union_vector/union_vector_generated.h @@ -455,6 +455,7 @@ inline bool VerifyCharacter(flatbuffers::Verifier &verifier, const void *obj, Ch } inline bool VerifyCharacterVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector> *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) { if (!VerifyCharacter(