| 63 | } |
| 64 | |
| 65 | bool 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 | |
| 88 | bool FieldModel<::protoex::Order>::verify_fields(size_t fbe_struct_size) const noexcept |
| 89 | { |
no test coverage detected