MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / verify

Method verify

proto/protoex_models.cpp:65–86  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

63}
64
65bool FieldModel<::protoex::Order>::verify(bool fbe_verify_type) const noexcept
66{
67 if ((_buffer.offset() + fbe_offset() + fbe_size()) > _buffer.size())
68 return true;
69
70 uint32_t fbe_struct_offset = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_offset()));
71 if ((fbe_struct_offset == 0) || ((_buffer.offset() + fbe_struct_offset + 4 + 4) > _buffer.size()))
72 return false;
73
74 uint32_t fbe_struct_size = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset));
75 if (fbe_struct_size < (4 + 4))
76 return false;
77
78 uint32_t fbe_struct_type = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset + 4));
79 if (fbe_verify_type && (fbe_struct_type != fbe_type()))
80 return false;
81
82 _buffer.shift(fbe_struct_offset);
83 bool fbe_result = verify_fields(fbe_struct_size);
84 _buffer.unshift(fbe_struct_offset);
85 return fbe_result;
86}
87
88bool FieldModel<::protoex::Order>::verify_fields(size_t fbe_struct_size) const noexcept
89{

Callers 1

verify_fieldsMethod · 0.45

Calls 8

offsetMethod · 0.45
sizeMethod · 0.45
dataMethod · 0.45
shiftMethod · 0.45
unshiftMethod · 0.45
bufferMethod · 0.45
fbe_offsetMethod · 0.45
fbe_sizeMethod · 0.45

Tested by

no test coverage detected