Верификатор Flatbuffer не работает? - PullRequest
0 голосов
/ 01 мая 2018

У меня есть следующий пример теста FlatBuffers Schema:

namespace test;
struct Vec3 {
  x:float;
  y:float;
  z:float;
}
table Test {
  pos:[Vec3] (id:0);
}
root_type Test;

Когда я кодирую простой тест, верификатор возвращает false, чего я не понимаю. Данные кажутся правильными ...?

#include <flatbuffers/flatbuffers.h>
#include "testbuffer_generated.h"

namespace t = test;
unsigned int n = 1; // How many positions we store

flatbuffers::FlatBufferBuilder builder;
std::vector<t::Vec3> vecs(n, t::Vec3(1, 3, 4));
auto vecsOffsets = builder.CreateVectorOfStructs(vecs.data(), vecs.size());

auto testBuilder = t::TestBuilder(builder);
testBuilder.add_pos(vecsOffsets);
auto test = testBuilder.Finish();
builder.Finish(test);

uint8_t* file    = builder.GetBufferPointer();
std::size_t size = builder.GetSize();
flatbuffers::Verifier v(file, size);
std::cout << t::VerifyTestBuffer(v); << std::endl;

Я использую главную ветку от https://github.com/google/flatbuffers

Кто-нибудь знает, что может быть не так?

...