MCPcopy Create free account
hub / github.com/bytedance/Fastbot_Android / Deserialize

Method Deserialize

native/thirdpart/flatbuffers/idl_parser.cpp:3565–3597  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3563}
3564
3565bool StructDef::Deserialize(Parser &parser, const reflection::Object *object) {
3566 if (!DeserializeAttributes(parser, object->attributes())) return false;
3567 DeserializeDoc(doc_comment, object->documentation());
3568 name = parser.UnqualifiedName(object->name()->str());
3569 predecl = false;
3570 sortbysize = attributes.Lookup("original_order") == nullptr && !fixed;
3571 const auto &of = *(object->fields());
3572 auto indexes = std::vector<uoffset_t>(of.size());
3573 for (uoffset_t i = 0; i < of.size(); i++) indexes[of.Get(i)->id()] = i;
3574 size_t tmp_struct_size = 0;
3575 for (size_t i = 0; i < indexes.size(); i++) {
3576 auto field = of.Get(indexes[i]);
3577 auto field_def = new FieldDef();
3578 if (!field_def->Deserialize(parser, field) ||
3579 fields.Add(field_def->name, field_def)) {
3580 delete field_def;
3581 return false;
3582 }
3583 if (fixed) {
3584 // Recompute padding since that's currently not serialized.
3585 auto size = InlineSize(field_def->value.type);
3586 auto next_field =
3587 i + 1 < indexes.size() ? of.Get(indexes[i + 1]) : nullptr;
3588 tmp_struct_size += size;
3589 field_def->padding =
3590 next_field ? (next_field->offset() - field_def->value.offset) - size
3591 : PaddingBytes(tmp_struct_size, minalign);
3592 tmp_struct_size += field_def->padding;
3593 }
3594 }
3595 FLATBUFFERS_ASSERT(static_cast<int>(tmp_struct_size) == object->bytesize());
3596 return true;
3597}
3598
3599Offset<reflection::Field> FieldDef::Serialize(FlatBufferBuilder *builder,
3600 uint16_t id,

Callers 1

LoadBinarySchemaMethod · 0.45

Calls 15

DeserializeDocFunction · 0.85
PaddingBytesFunction · 0.85
NumToStringFunction · 0.85
FloatToStringFunction · 0.85
BufferHasIdentifierFunction · 0.85
SchemaIdentifierFunction · 0.85
GetSizePrefixedSchemaFunction · 0.85
GetSchemaFunction · 0.85
GetNamespaceFunction · 0.85
UnqualifiedNameMethod · 0.80
nameMethod · 0.80

Tested by

no test coverage detected