diff --git a/include/flatbuffers/idl.h b/include/flatbuffers/idl.h index 2385f471b..9c7459c08 100644 --- a/include/flatbuffers/idl.h +++ b/include/flatbuffers/idl.h @@ -606,7 +606,7 @@ private: size_t &count, ParseVectorDelimitersBody body, void *state); FLATBUFFERS_CHECKED_ERROR ParseVector(const Type &type, uoffset_t *ovalue); FLATBUFFERS_CHECKED_ERROR ParseNestedFlatbuffer(Value &val, FieldDef *field, - size_t parent_fieldn, + size_t fieldn, const StructDef *parent_struct_def); FLATBUFFERS_CHECKED_ERROR ParseMetaData(SymbolTable *attributes); FLATBUFFERS_CHECKED_ERROR TryTypedValue(int dtoken, bool check, Value &e, diff --git a/samples/monster_generated.h b/samples/monster_generated.h index 9fca774da..cfa30afb9 100644 --- a/samples/monster_generated.h +++ b/samples/monster_generated.h @@ -485,7 +485,7 @@ inline flatbuffers::Offset CreateMonster(flatbuffers::FlatBufferBuilder auto _pos = _o->pos ? _o->pos.get() : 0; auto _mana = _o->mana; auto _hp = _o->hp; - auto _name = _o->name.size() ? _fbb.CreateString(_o->name) : 0; + auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name); auto _inventory = _o->inventory.size() ? _fbb.CreateVector(_o->inventory) : 0; auto _color = _o->color; auto _weapons = _o->weapons.size() ? _fbb.CreateVector> (_o->weapons.size(), [](size_t i, _VectorArgs *__va) { return CreateWeapon(*__va->__fbb, __va->__o->weapons[i].get(), __va->__rehasher); }, &_va ) : 0; @@ -525,7 +525,7 @@ inline flatbuffers::Offset CreateWeapon(flatbuffers::FlatBufferBuilder & (void)_rehasher; (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const WeaponT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; - auto _name = _o->name.size() ? _fbb.CreateString(_o->name) : 0; + auto _name = _o->name.empty() ? 0 : _fbb.CreateString(_o->name); auto _damage = _o->damage; return MyGame::Sample::CreateWeapon( _fbb, diff --git a/src/idl_gen_cpp.cpp b/src/idl_gen_cpp.cpp index 22a6e2228..fb57dc9d3 100644 --- a/src/idl_gen_cpp.cpp +++ b/src/idl_gen_cpp.cpp @@ -1772,7 +1772,7 @@ class CppGenerator : public BaseGenerator { // For optional fields, check to see if there actually is any data // in _o->field before attempting to access it. if (!field.required) { - code = value + ".size() ? " + code + " : 0"; + code = value + ".empty() ? 0 : " + code; } break; } diff --git a/tests/monster_test_generated.h b/tests/monster_test_generated.h index b105f5a9d..1ef66cda7 100644 --- a/tests/monster_test_generated.h +++ b/tests/monster_test_generated.h @@ -1499,7 +1499,7 @@ inline flatbuffers::Offset CreateStat(flatbuffers::FlatBufferBuilder &_fbb (void)_rehasher; (void)_o; struct _VectorArgs { flatbuffers::FlatBufferBuilder *__fbb; const StatT* __o; const flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; - auto _id = _o->id.size() ? _fbb.CreateString(_o->id) : 0; + auto _id = _o->id.empty() ? 0 : _fbb.CreateString(_o->id); auto _val = _o->val; auto _count = _o->count; return MyGame::Example::CreateStat(