| 174 | } |
| 175 | |
| 176 | bool FieldModel<::test::StructSimple>::verify(bool fbe_verify_type) const noexcept |
| 177 | { |
| 178 | if ((_buffer.offset() + fbe_offset() + fbe_size()) > _buffer.size()) |
| 179 | return true; |
| 180 | |
| 181 | uint32_t fbe_struct_offset = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_offset())); |
| 182 | if ((fbe_struct_offset == 0) || ((_buffer.offset() + fbe_struct_offset + 4 + 4) > _buffer.size())) |
| 183 | return false; |
| 184 | |
| 185 | uint32_t fbe_struct_size = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset)); |
| 186 | if (fbe_struct_size < (4 + 4)) |
| 187 | return false; |
| 188 | |
| 189 | uint32_t fbe_struct_type = *((const uint32_t*)(_buffer.data() + _buffer.offset() + fbe_struct_offset + 4)); |
| 190 | if (fbe_verify_type && (fbe_struct_type != fbe_type())) |
| 191 | return false; |
| 192 | |
| 193 | _buffer.shift(fbe_struct_offset); |
| 194 | bool fbe_result = verify_fields(fbe_struct_size); |
| 195 | _buffer.unshift(fbe_struct_offset); |
| 196 | return fbe_result; |
| 197 | } |
| 198 | |
| 199 | bool FieldModel<::test::StructSimple>::verify_fields(size_t fbe_struct_size) const noexcept |
| 200 | { |
no test coverage detected