Support nested_flatbuffer attribute when parsing bfbs schema (#5448)

This commit is contained in:
ll-antn 2019-07-26 19:13:11 +03:00 committed by Wouter van Oortmerssen
parent b632061eff
commit 09dea79a22
2 changed files with 10 additions and 1 deletions

View File

@ -3131,7 +3131,7 @@ Offset<reflection::Field> FieldDef::Serialize(FlatBufferBuilder *builder,
}
bool FieldDef::Deserialize(Parser &parser, const reflection::Field *field) {
name = parser.UnqualifiedName(field->name()->str());
name = field->name()->str();
defined_namespace = parser.current_namespace_;
if (!value.type.Deserialize(parser, field->type()))
return false;
@ -3158,6 +3158,12 @@ bool FieldDef::Deserialize(Parser &parser, const reflection::Field *field) {
value.type.element != BASE_TYPE_UCHAR)
return false;
}
if (auto nested = attributes.Lookup("nested_flatbuffer")) {
auto nested_qualified_name =
parser.current_namespace_->GetFullyQualifiedName(nested->constant);
nested_flatbuffer = parser.LookupStruct(nested_qualified_name);
if (!nested_flatbuffer) return false;
}
DeserializeDoc(doc_comment, field->documentation());
return true;
}

View File

@ -56,6 +56,9 @@
name: "Wilma"
}
],
testnestedflatbuffer: {
name: "NestedMonster"
},
testbool: true,
testhashs32_fnv1: -579221183,
testhashu32_fnv1: 3715746113,