[C++] Fix union copy constructor to work with nested structs (#6552) (#6607)

This commit is contained in:
Piotr Dziwiński
2021-05-07 09:42:44 +12:00
committed by GitHub
parent 8a582883ac
commit 47361baf61

View File

@@ -1534,7 +1534,8 @@ class CppGenerator : public BaseGenerator {
code_.SetValue("TYPE", GetUnionElement(ev, true, opts_));
code_ += " case {{LABEL}}: {";
bool copyable = true;
if (ev.union_type.base_type == BASE_TYPE_STRUCT) {
if (ev.union_type.base_type == BASE_TYPE_STRUCT &&
!ev.union_type.struct_def->fixed) {
// Don't generate code to copy if table is not copyable.
// TODO(wvo): make tables copyable instead.
for (auto fit = ev.union_type.struct_def->fields.vec.begin();