mirror of
https://github.com/google/flatbuffers.git
synced 2025-04-08 09:12:14 +08:00
Support nested_flatbuffer attribute when parsing bfbs schema (#5448)
This commit is contained in:
parent
b632061eff
commit
09dea79a22
@ -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;
|
||||
}
|
||||
|
@ -56,6 +56,9 @@
|
||||
name: "Wilma"
|
||||
}
|
||||
],
|
||||
testnestedflatbuffer: {
|
||||
name: "NestedMonster"
|
||||
},
|
||||
testbool: true,
|
||||
testhashs32_fnv1: -579221183,
|
||||
testhashu32_fnv1: 3715746113,
|
||||
|
Loading…
x
Reference in New Issue
Block a user