Skip to content

Commit

Permalink
remove merge parameter
Browse files Browse the repository at this point in the history
  • Loading branch information
dbaileychess committed Sep 14, 2022
1 parent e620dab commit 408d884
Show file tree
Hide file tree
Showing 18 changed files with 454 additions and 517 deletions.
14 changes: 6 additions & 8 deletions samples/monster_generated.h
Expand Up @@ -352,7 +352,7 @@ struct Monster FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
verifier.EndTable();
}
MonsterT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr, bool _merge = false) const;
void UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
static flatbuffers::Offset<Monster> Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
};

Expand Down Expand Up @@ -499,7 +499,7 @@ struct Weapon FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
verifier.EndTable();
}
WeaponT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
void UnPackTo(WeaponT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr, bool _merge = false) const;
void UnPackTo(WeaponT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
static flatbuffers::Offset<Weapon> Pack(flatbuffers::FlatBufferBuilder &_fbb, const WeaponT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
};

Expand Down Expand Up @@ -598,20 +598,19 @@ inline MonsterT *Monster::UnPack(const flatbuffers::resolver_function_t *_resolv
return _o.release();
}

inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver, bool _merge) const {
inline void Monster::UnPackTo(MonsterT *_o, const flatbuffers::resolver_function_t *_resolver) const {
(void)_o;
(void)_resolver;
(void)_merge;
{ auto _e = pos(); if (_e) _o->pos = flatbuffers::unique_ptr<MyGame::Sample::Vec3>(new MyGame::Sample::Vec3(*_e)); }
{ auto _e = mana(); _o->mana = _e; }
{ auto _e = hp(); _o->hp = _e; }
{ auto _e = name(); if (_e) _o->name = _e->str(); }
{ auto _e = inventory(); if (_e) {_o->inventory.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->inventory.begin()); } }
{ auto _e = color(); _o->color = _e; }
{ auto _e = weapons(); if (_e) {_o->weapons.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->weapons[_i]) { _e->Get(_i)->UnPackTo(_o->weapons[_i].get(), _resolver, _merge); } else { _o->weapons[_i] = flatbuffers::unique_ptr<MyGame::Sample::WeaponT>(_e->Get(_i)->UnPack(_resolver)); }; } } else if(!_merge) { _o->weapons.resize(0); _o->weapons.shrink_to_fit(); } }
{ auto _e = weapons(); if (_e) {_o->weapons.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { if(_o->weapons[_i]) { _e->Get(_i)->UnPackTo(_o->weapons[_i].get(), _resolver); } else { _o->weapons[_i] = flatbuffers::unique_ptr<MyGame::Sample::WeaponT>(_e->Get(_i)->UnPack(_resolver)); }; } } else { _o->weapons.resize(0); _o->weapons.shrink_to_fit(); } }
{ auto _e = equipped_type(); _o->equipped.type = _e; }
{ auto _e = equipped(); if (_e) _o->equipped.value = MyGame::Sample::EquipmentUnion::UnPack(_e, equipped_type(), _resolver); }
{ auto _e = path(); if (_e) {_o->path.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->path[_i] = *_e->Get(_i); } } else if(!_merge) { _o->path.resize(0); _o->path.shrink_to_fit(); } }
{ auto _e = path(); if (_e) {_o->path.resize(_e->size()); for (flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->path[_i] = *_e->Get(_i); } } else { _o->path.resize(0); _o->path.shrink_to_fit(); } }
}

inline flatbuffers::Offset<Monster> Monster::Pack(flatbuffers::FlatBufferBuilder &_fbb, const MonsterT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
Expand Down Expand Up @@ -664,10 +663,9 @@ inline WeaponT *Weapon::UnPack(const flatbuffers::resolver_function_t *_resolver
return _o.release();
}

inline void Weapon::UnPackTo(WeaponT *_o, const flatbuffers::resolver_function_t *_resolver, bool _merge) const {
inline void Weapon::UnPackTo(WeaponT *_o, const flatbuffers::resolver_function_t *_resolver) const {
(void)_o;
(void)_resolver;
(void)_merge;
{ auto _e = name(); if (_e) _o->name = _e->str(); }
{ auto _e = damage(); _o->damage = _e; }
}
Expand Down
14 changes: 6 additions & 8 deletions src/idl_gen_cpp.cpp
Expand Up @@ -1065,8 +1065,7 @@ class CppGenerator : public BaseGenerator {
return "void " + (inclass ? "" : Name(struct_def) + "::") + "UnPackTo(" +
NativeName(Name(struct_def), &struct_def, opts) + " *" +
"_o, const flatbuffers::resolver_function_t *_resolver" +
(inclass ? " = nullptr" : "") + ", bool _merge" +
(inclass ? " = false" : "") + ") const";
(inclass ? " = nullptr" : "") + ") const";
}

void GenMiniReflectPre(const StructDef *struct_def) {
Expand Down Expand Up @@ -3078,15 +3077,15 @@ class CppGenerator : public BaseGenerator {
if (is_pointer) {
code += "if(_o->" + name + "[_i]" + ") { ";
code += indexing + "->UnPackTo(_o->" + name +
"[_i].get(), _resolver, _merge);";
"[_i].get(), _resolver);";
code += " } else { ";
}
code += "_o->" + name + "[_i]" + access + " = ";
code += GenUnpackVal(field.value.type.VectorType(), indexing, true,
field);
if (is_pointer) { code += "; }"; }
}
code += "; } } else if(!_merge) { " + vector_field + ".resize(0); " +
code += "; } } else { " + vector_field + ".resize(0); " +
vector_field + ".shrink_to_fit(); }";
}
break;
Expand Down Expand Up @@ -3138,14 +3137,14 @@ class CppGenerator : public BaseGenerator {

if (is_pointer) {
code += "{ if(" + out_field + ") { ";
code += "_e->UnPackTo(" + out_field + ".get(), _resolver, _merge);";
code += "_e->UnPackTo(" + out_field + ".get(), _resolver);";
code += " } else { ";
}
code += out_field + " = ";
code += GenUnpackVal(field.value.type, "_e", false, field) + ";";
if (is_pointer) {
code += " } } else if (!_merge && " + out_field + ") {" +
out_field + ".reset(); }";
code += " } } else if (" + out_field + ") { " + out_field +
".reset(); }";
}
}
break;
Expand Down Expand Up @@ -3398,7 +3397,6 @@ class CppGenerator : public BaseGenerator {
"inline " + TableUnPackToSignature(struct_def, false, opts_) + " {";
code_ += " (void)_o;";
code_ += " (void)_resolver;";
code_ += " (void)_merge;";

for (auto it = struct_def.fields.vec.begin();
it != struct_def.fields.vec.end(); ++it) {
Expand Down
5 changes: 2 additions & 3 deletions tests/arrays_test_generated.h
Expand Up @@ -299,7 +299,7 @@ struct ArrayTable FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
verifier.EndTable();
}
ArrayTableT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
void UnPackTo(ArrayTableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr, bool _merge = false) const;
void UnPackTo(ArrayTableT *_o, const flatbuffers::resolver_function_t *_resolver = nullptr) const;
static flatbuffers::Offset<ArrayTable> Pack(flatbuffers::FlatBufferBuilder &_fbb, const ArrayTableT* _o, const flatbuffers::rehasher_function_t *_rehasher = nullptr);
};

Expand Down Expand Up @@ -357,10 +357,9 @@ inline ArrayTableT *ArrayTable::UnPack(const flatbuffers::resolver_function_t *_
return _o.release();
}

inline void ArrayTable::UnPackTo(ArrayTableT *_o, const flatbuffers::resolver_function_t *_resolver, bool _merge) const {
inline void ArrayTable::UnPackTo(ArrayTableT *_o, const flatbuffers::resolver_function_t *_resolver) const {
(void)_o;
(void)_resolver;
(void)_merge;
{ auto _e = a(); if (_e) _o->a = flatbuffers::unique_ptr<MyGame::Example::ArrayStruct>(new MyGame::Example::ArrayStruct(*_e)); }
}

Expand Down

0 comments on commit 408d884

Please sign in to comment.