mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-30 17:40:02 +00:00
Minireflect fixed array (#6129)
* CMakeLists: also really generate optional_scalars as needed by test elsewhere * [C++] Handle fixed-length array in minireflection Fixes #6128
This commit is contained in:
@@ -478,6 +478,7 @@ if(FLATBUFFERS_BUILD_TESTS)
|
|||||||
compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test1.fbs)
|
compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test1.fbs)
|
||||||
compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test2.fbs)
|
compile_flatbuffers_schema_to_cpp(tests/namespace_test/namespace_test2.fbs)
|
||||||
compile_flatbuffers_schema_to_cpp(tests/union_vector/union_vector.fbs)
|
compile_flatbuffers_schema_to_cpp(tests/union_vector/union_vector.fbs)
|
||||||
|
compile_flatbuffers_schema_to_cpp(tests/optional_scalars.fbs)
|
||||||
compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "")
|
compile_flatbuffers_schema_to_cpp_opt(tests/native_type_test.fbs "")
|
||||||
compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare")
|
compile_flatbuffers_schema_to_cpp_opt(tests/arrays_test.fbs "--scoped-enums;--gen-compare")
|
||||||
compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs)
|
compile_flatbuffers_schema_to_binary(tests/arrays_test.fbs)
|
||||||
|
|||||||
@@ -2747,7 +2747,7 @@ inline const char * const *ElementaryTypeNames() {
|
|||||||
// Basic type info cost just 16bits per field!
|
// Basic type info cost just 16bits per field!
|
||||||
struct TypeCode {
|
struct TypeCode {
|
||||||
uint16_t base_type : 4; // ElementaryType
|
uint16_t base_type : 4; // ElementaryType
|
||||||
uint16_t is_vector : 1;
|
uint16_t is_repeating : 1; // Either vector (in table) or array (in struct)
|
||||||
int16_t sequence_ref : 11; // Index into type_refs below, or -1 for none.
|
int16_t sequence_ref : 11; // Index into type_refs below, or -1 for none.
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2763,6 +2763,7 @@ struct TypeTable {
|
|||||||
size_t num_elems; // of type_codes, values, names (but not type_refs).
|
size_t num_elems; // of type_codes, values, names (but not type_refs).
|
||||||
const TypeCode *type_codes; // num_elems count
|
const TypeCode *type_codes; // num_elems count
|
||||||
const TypeFunction *type_refs; // less than num_elems entries (see TypeCode).
|
const TypeFunction *type_refs; // less than num_elems entries (see TypeCode).
|
||||||
|
const int16_t *array_sizes; // less than num_elems entries (see TypeCode).
|
||||||
const int64_t *values; // Only set for non-consecutive enum/union or structs.
|
const int64_t *values; // Only set for non-consecutive enum/union or structs.
|
||||||
const char *const *names; // Only set if compiled with --reflect-names.
|
const char *const *names; // Only set if compiled with --reflect-names.
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -234,10 +234,11 @@ inline void IterateObject(const uint8_t *obj, const TypeTable *type_table,
|
|||||||
visitor->StartSequence();
|
visitor->StartSequence();
|
||||||
const uint8_t *prev_val = nullptr;
|
const uint8_t *prev_val = nullptr;
|
||||||
size_t set_idx = 0;
|
size_t set_idx = 0;
|
||||||
|
size_t array_idx = 0;
|
||||||
for (size_t i = 0; i < type_table->num_elems; i++) {
|
for (size_t i = 0; i < type_table->num_elems; i++) {
|
||||||
auto type_code = type_table->type_codes[i];
|
auto type_code = type_table->type_codes[i];
|
||||||
auto type = static_cast<ElementaryType>(type_code.base_type);
|
auto type = static_cast<ElementaryType>(type_code.base_type);
|
||||||
auto is_vector = type_code.is_vector != 0;
|
auto is_repeating = type_code.is_repeating != 0;
|
||||||
auto ref_idx = type_code.sequence_ref;
|
auto ref_idx = type_code.sequence_ref;
|
||||||
const TypeTable *ref = nullptr;
|
const TypeTable *ref = nullptr;
|
||||||
if (ref_idx >= 0) { ref = type_table->type_refs[ref_idx](); }
|
if (ref_idx >= 0) { ref = type_table->type_refs[ref_idx](); }
|
||||||
@@ -249,15 +250,25 @@ inline void IterateObject(const uint8_t *obj, const TypeTable *type_table,
|
|||||||
} else {
|
} else {
|
||||||
val = obj + type_table->values[i];
|
val = obj + type_table->values[i];
|
||||||
}
|
}
|
||||||
visitor->Field(i, set_idx, type, is_vector, ref, name, val);
|
visitor->Field(i, set_idx, type, is_repeating, ref, name, val);
|
||||||
if (val) {
|
if (val) {
|
||||||
set_idx++;
|
set_idx++;
|
||||||
if (is_vector) {
|
if (is_repeating) {
|
||||||
val += ReadScalar<uoffset_t>(val);
|
auto elem_ptr = val;
|
||||||
auto vec = reinterpret_cast<const Vector<uint8_t> *>(val);
|
size_t size = 0;
|
||||||
|
if (type_table->st == ST_TABLE) {
|
||||||
|
// variable length vector
|
||||||
|
val += ReadScalar<uoffset_t>(val);
|
||||||
|
auto vec = reinterpret_cast<const Vector<uint8_t> *>(val);
|
||||||
|
elem_ptr = vec->Data();
|
||||||
|
size = vec->size();
|
||||||
|
} else {
|
||||||
|
// otherwise fixed size array
|
||||||
|
size = type_table->array_sizes[array_idx];
|
||||||
|
++array_idx;
|
||||||
|
}
|
||||||
visitor->StartVector();
|
visitor->StartVector();
|
||||||
auto elem_ptr = vec->Data();
|
for (size_t j = 0; j < size; j++) {
|
||||||
for (size_t j = 0; j < vec->size(); j++) {
|
|
||||||
visitor->Element(j, type, ref, elem_ptr);
|
visitor->Element(j, type, ref, elem_ptr);
|
||||||
IterateValue(type, elem_ptr, ref, prev_val, static_cast<soffset_t>(j),
|
IterateValue(type, elem_ptr, ref, prev_val, static_cast<soffset_t>(j),
|
||||||
visitor);
|
visitor);
|
||||||
|
|||||||
@@ -733,7 +733,7 @@ inline const flatbuffers::TypeTable *ColorTypeTable() {
|
|||||||
"Blue"
|
"Blue"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -751,7 +751,7 @@ inline const flatbuffers::TypeTable *EquipmentTypeTable() {
|
|||||||
"Weapon"
|
"Weapon"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 2, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 2, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -769,7 +769,7 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() {
|
|||||||
"z"
|
"z"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 3, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -808,7 +808,7 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() {
|
|||||||
"path"
|
"path"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 11, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 11, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -823,7 +823,7 @@ inline const flatbuffers::TypeTable *WeaponTypeTable() {
|
|||||||
"damage"
|
"damage"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -954,11 +954,13 @@ class CppGenerator : public BaseGenerator {
|
|||||||
}
|
}
|
||||||
std::string ts;
|
std::string ts;
|
||||||
std::vector<std::string> type_refs;
|
std::vector<std::string> type_refs;
|
||||||
|
std::vector<uint16_t> array_sizes;
|
||||||
for (auto it = types.begin(); it != types.end(); ++it) {
|
for (auto it = types.begin(); it != types.end(); ++it) {
|
||||||
auto &type = *it;
|
auto &type = *it;
|
||||||
if (!ts.empty()) ts += ",\n ";
|
if (!ts.empty()) ts += ",\n ";
|
||||||
auto is_vector = type.base_type == BASE_TYPE_VECTOR;
|
auto is_vector = type.base_type == BASE_TYPE_VECTOR;
|
||||||
auto bt = is_vector ? type.element : type.base_type;
|
auto is_array = type.base_type == BASE_TYPE_ARRAY;
|
||||||
|
auto bt = is_vector || is_array ? type.element : type.base_type;
|
||||||
auto et = IsScalar(bt) || bt == BASE_TYPE_STRING
|
auto et = IsScalar(bt) || bt == BASE_TYPE_STRING
|
||||||
? bt - BASE_TYPE_UTYPE + ET_UTYPE
|
? bt - BASE_TYPE_UTYPE + ET_UTYPE
|
||||||
: ET_SEQUENCE;
|
: ET_SEQUENCE;
|
||||||
@@ -980,14 +982,21 @@ class CppGenerator : public BaseGenerator {
|
|||||||
type_refs.push_back(ref_name);
|
type_refs.push_back(ref_name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (is_array) { array_sizes.push_back(type.fixed_length); }
|
||||||
ts += "{ flatbuffers::" + std::string(ElementaryTypeNames()[et]) + ", " +
|
ts += "{ flatbuffers::" + std::string(ElementaryTypeNames()[et]) + ", " +
|
||||||
NumToString(is_vector) + ", " + NumToString(ref_idx) + " }";
|
NumToString(is_vector || is_array) + ", " + NumToString(ref_idx) +
|
||||||
|
" }";
|
||||||
}
|
}
|
||||||
std::string rs;
|
std::string rs;
|
||||||
for (auto it = type_refs.begin(); it != type_refs.end(); ++it) {
|
for (auto it = type_refs.begin(); it != type_refs.end(); ++it) {
|
||||||
if (!rs.empty()) rs += ",\n ";
|
if (!rs.empty()) rs += ",\n ";
|
||||||
rs += *it + "TypeTable";
|
rs += *it + "TypeTable";
|
||||||
}
|
}
|
||||||
|
std::string as;
|
||||||
|
for (auto it = array_sizes.begin(); it != array_sizes.end(); ++it) {
|
||||||
|
as += NumToString(*it);
|
||||||
|
as += ", ";
|
||||||
|
}
|
||||||
std::string ns;
|
std::string ns;
|
||||||
for (auto it = names.begin(); it != names.end(); ++it) {
|
for (auto it = names.begin(); it != names.end(); ++it) {
|
||||||
if (!ns.empty()) ns += ",\n ";
|
if (!ns.empty()) ns += ",\n ";
|
||||||
@@ -1016,6 +1025,7 @@ class CppGenerator : public BaseGenerator {
|
|||||||
}
|
}
|
||||||
code_.SetValue("TYPES", ts);
|
code_.SetValue("TYPES", ts);
|
||||||
code_.SetValue("REFS", rs);
|
code_.SetValue("REFS", rs);
|
||||||
|
code_.SetValue("ARRAYSIZES", as);
|
||||||
code_.SetValue("NAMES", ns);
|
code_.SetValue("NAMES", ns);
|
||||||
code_.SetValue("VALUES", vs);
|
code_.SetValue("VALUES", vs);
|
||||||
code_ += "inline const flatbuffers::TypeTable *{{NAME}}TypeTable() {";
|
code_ += "inline const flatbuffers::TypeTable *{{NAME}}TypeTable() {";
|
||||||
@@ -1029,6 +1039,9 @@ class CppGenerator : public BaseGenerator {
|
|||||||
code_ += " {{REFS}}";
|
code_ += " {{REFS}}";
|
||||||
code_ += " };";
|
code_ += " };";
|
||||||
}
|
}
|
||||||
|
if (!as.empty()) {
|
||||||
|
code_ += " static const int16_t array_sizes[] = { {{ARRAYSIZES}} };";
|
||||||
|
}
|
||||||
if (!vs.empty()) {
|
if (!vs.empty()) {
|
||||||
// Problem with uint64_t values greater than 9223372036854775807ULL.
|
// Problem with uint64_t values greater than 9223372036854775807ULL.
|
||||||
code_ += " static const int64_t values[] = { {{VALUES}} };";
|
code_ += " static const int64_t values[] = { {{VALUES}} };";
|
||||||
@@ -1044,6 +1057,7 @@ class CppGenerator : public BaseGenerator {
|
|||||||
code_ += std::string(" flatbuffers::{{SEQ_TYPE}}, {{NUM_FIELDS}}, ") +
|
code_ += std::string(" flatbuffers::{{SEQ_TYPE}}, {{NUM_FIELDS}}, ") +
|
||||||
(num_fields ? "type_codes, " : "nullptr, ") +
|
(num_fields ? "type_codes, " : "nullptr, ") +
|
||||||
(!type_refs.empty() ? "type_refs, " : "nullptr, ") +
|
(!type_refs.empty() ? "type_refs, " : "nullptr, ") +
|
||||||
|
(!as.empty() ? "array_sizes, " : "nullptr, ") +
|
||||||
(!vs.empty() ? "values, " : "nullptr, ") +
|
(!vs.empty() ? "values, " : "nullptr, ") +
|
||||||
(has_names ? "names" : "nullptr");
|
(has_names ? "names" : "nullptr");
|
||||||
code_ += " };";
|
code_ += " };";
|
||||||
|
|||||||
@@ -341,21 +341,22 @@ inline const flatbuffers::TypeTable *TestEnumTypeTable() {
|
|||||||
"C"
|
"C"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const flatbuffers::TypeTable *NestedStructTypeTable() {
|
inline const flatbuffers::TypeTable *NestedStructTypeTable() {
|
||||||
static const flatbuffers::TypeCode type_codes[] = {
|
static const flatbuffers::TypeCode type_codes[] = {
|
||||||
{ flatbuffers::ET_SEQUENCE, 0, -1 },
|
{ flatbuffers::ET_INT, 1, -1 },
|
||||||
{ flatbuffers::ET_CHAR, 0, 0 },
|
{ flatbuffers::ET_CHAR, 0, 0 },
|
||||||
{ flatbuffers::ET_SEQUENCE, 0, 0 },
|
{ flatbuffers::ET_CHAR, 1, 0 },
|
||||||
{ flatbuffers::ET_SEQUENCE, 0, -1 }
|
{ flatbuffers::ET_LONG, 1, -1 }
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeFunction type_refs[] = {
|
static const flatbuffers::TypeFunction type_refs[] = {
|
||||||
MyGame::Example::TestEnumTypeTable
|
MyGame::Example::TestEnumTypeTable
|
||||||
};
|
};
|
||||||
|
static const int16_t array_sizes[] = { 2, 2, 2, };
|
||||||
static const int64_t values[] = { 0, 8, 9, 16, 32 };
|
static const int64_t values[] = { 0, 8, 9, 16, 32 };
|
||||||
static const char * const names[] = {
|
static const char * const names[] = {
|
||||||
"a",
|
"a",
|
||||||
@@ -364,7 +365,7 @@ inline const flatbuffers::TypeTable *NestedStructTypeTable() {
|
|||||||
"d"
|
"d"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 4, type_codes, type_refs, values, names
|
flatbuffers::ST_STRUCT, 4, type_codes, type_refs, array_sizes, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -372,15 +373,16 @@ inline const flatbuffers::TypeTable *NestedStructTypeTable() {
|
|||||||
inline const flatbuffers::TypeTable *ArrayStructTypeTable() {
|
inline const flatbuffers::TypeTable *ArrayStructTypeTable() {
|
||||||
static const flatbuffers::TypeCode type_codes[] = {
|
static const flatbuffers::TypeCode type_codes[] = {
|
||||||
{ flatbuffers::ET_FLOAT, 0, -1 },
|
{ flatbuffers::ET_FLOAT, 0, -1 },
|
||||||
{ flatbuffers::ET_SEQUENCE, 0, -1 },
|
{ flatbuffers::ET_INT, 1, -1 },
|
||||||
{ flatbuffers::ET_CHAR, 0, -1 },
|
{ flatbuffers::ET_CHAR, 0, -1 },
|
||||||
{ flatbuffers::ET_SEQUENCE, 0, 0 },
|
{ flatbuffers::ET_SEQUENCE, 1, 0 },
|
||||||
{ flatbuffers::ET_INT, 0, -1 },
|
{ flatbuffers::ET_INT, 0, -1 },
|
||||||
{ flatbuffers::ET_SEQUENCE, 0, -1 }
|
{ flatbuffers::ET_LONG, 1, -1 }
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeFunction type_refs[] = {
|
static const flatbuffers::TypeFunction type_refs[] = {
|
||||||
MyGame::Example::NestedStructTypeTable
|
MyGame::Example::NestedStructTypeTable
|
||||||
};
|
};
|
||||||
|
static const int16_t array_sizes[] = { 15, 2, 2, };
|
||||||
static const int64_t values[] = { 0, 4, 64, 72, 136, 144, 160 };
|
static const int64_t values[] = { 0, 4, 64, 72, 136, 144, 160 };
|
||||||
static const char * const names[] = {
|
static const char * const names[] = {
|
||||||
"a",
|
"a",
|
||||||
@@ -391,7 +393,7 @@ inline const flatbuffers::TypeTable *ArrayStructTypeTable() {
|
|||||||
"f"
|
"f"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 6, type_codes, type_refs, values, names
|
flatbuffers::ST_STRUCT, 6, type_codes, type_refs, array_sizes, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -407,7 +409,7 @@ inline const flatbuffers::TypeTable *ArrayTableTypeTable() {
|
|||||||
"a"
|
"a"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2867,7 +2867,7 @@ inline const flatbuffers::TypeTable *ColorTypeTable() {
|
|||||||
"Blue"
|
"Blue"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 3, type_codes, type_refs, values, names
|
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -2890,7 +2890,7 @@ inline const flatbuffers::TypeTable *RaceTypeTable() {
|
|||||||
"Elf"
|
"Elf"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 4, type_codes, type_refs, values, names
|
flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -2914,7 +2914,7 @@ inline const flatbuffers::TypeTable *AnyTypeTable() {
|
|||||||
"MyGame_Example2_Monster"
|
"MyGame_Example2_Monster"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -2938,7 +2938,7 @@ inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() {
|
|||||||
"M2"
|
"M2"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -2960,7 +2960,7 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() {
|
|||||||
"M3"
|
"M3"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -2969,7 +2969,7 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() {
|
|||||||
|
|
||||||
inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() {
|
inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() {
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr
|
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -2978,7 +2978,7 @@ namespace Example2 {
|
|||||||
|
|
||||||
inline const flatbuffers::TypeTable *MonsterTypeTable() {
|
inline const flatbuffers::TypeTable *MonsterTypeTable() {
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr
|
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -2998,7 +2998,7 @@ inline const flatbuffers::TypeTable *TestTypeTable() {
|
|||||||
"b"
|
"b"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3014,7 +3014,7 @@ inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() {
|
|||||||
"color"
|
"color"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3042,7 +3042,7 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() {
|
|||||||
"test3"
|
"test3"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 6, type_codes, type_refs, values, names
|
flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3058,7 +3058,7 @@ inline const flatbuffers::TypeTable *AbilityTypeTable() {
|
|||||||
"distance"
|
"distance"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3075,7 +3075,7 @@ inline const flatbuffers::TypeTable *StatTypeTable() {
|
|||||||
"count"
|
"count"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3088,7 +3088,7 @@ inline const flatbuffers::TypeTable *ReferrableTypeTable() {
|
|||||||
"id"
|
"id"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3211,7 +3211,7 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() {
|
|||||||
"signed_enum"
|
"signed_enum"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 49, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 49, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3246,7 +3246,7 @@ inline const flatbuffers::TypeTable *TypeAliasesTypeTable() {
|
|||||||
"vf64"
|
"vf64"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -725,7 +725,7 @@ inline const flatbuffers::TypeTable *OptionalByteTypeTable() {
|
|||||||
"One"
|
"One"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 2, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_ENUM, 2, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -809,7 +809,7 @@ inline const flatbuffers::TypeTable *ScalarStuffTypeTable() {
|
|||||||
"default_enum"
|
"default_enum"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 35, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 35, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ inline const flatbuffers::TypeTable *MonsterExtraTypeTable() {
|
|||||||
"deprec"
|
"deprec"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 11, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 11, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3149,7 +3149,7 @@ inline const flatbuffers::TypeTable *ColorTypeTable() {
|
|||||||
"Blue"
|
"Blue"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 3, type_codes, type_refs, values, names
|
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3172,7 +3172,7 @@ inline const flatbuffers::TypeTable *RaceTypeTable() {
|
|||||||
"Elf"
|
"Elf"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 4, type_codes, type_refs, values, names
|
flatbuffers::ST_ENUM, 4, type_codes, type_refs, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3196,7 +3196,7 @@ inline const flatbuffers::TypeTable *AnyTypeTable() {
|
|||||||
"MyGame_Example2_Monster"
|
"MyGame_Example2_Monster"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3220,7 +3220,7 @@ inline const flatbuffers::TypeTable *AnyUniqueAliasesTypeTable() {
|
|||||||
"M2"
|
"M2"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3242,7 +3242,7 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() {
|
|||||||
"M3"
|
"M3"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 4, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3251,7 +3251,7 @@ inline const flatbuffers::TypeTable *AnyAmbiguousAliasesTypeTable() {
|
|||||||
|
|
||||||
inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() {
|
inline const flatbuffers::TypeTable *InParentNamespaceTypeTable() {
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr
|
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3260,7 +3260,7 @@ namespace Example2 {
|
|||||||
|
|
||||||
inline const flatbuffers::TypeTable *MonsterTypeTable() {
|
inline const flatbuffers::TypeTable *MonsterTypeTable() {
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr
|
flatbuffers::ST_TABLE, 0, nullptr, nullptr, nullptr, nullptr, nullptr
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3280,7 +3280,7 @@ inline const flatbuffers::TypeTable *TestTypeTable() {
|
|||||||
"b"
|
"b"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3296,7 +3296,7 @@ inline const flatbuffers::TypeTable *TestSimpleTableWithEnumTypeTable() {
|
|||||||
"color"
|
"color"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3324,7 +3324,7 @@ inline const flatbuffers::TypeTable *Vec3TypeTable() {
|
|||||||
"test3"
|
"test3"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 6, type_codes, type_refs, values, names
|
flatbuffers::ST_STRUCT, 6, type_codes, type_refs, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3340,7 +3340,7 @@ inline const flatbuffers::TypeTable *AbilityTypeTable() {
|
|||||||
"distance"
|
"distance"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3357,7 +3357,7 @@ inline const flatbuffers::TypeTable *StatTypeTable() {
|
|||||||
"count"
|
"count"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 3, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3370,7 +3370,7 @@ inline const flatbuffers::TypeTable *ReferrableTypeTable() {
|
|||||||
"id"
|
"id"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3493,7 +3493,7 @@ inline const flatbuffers::TypeTable *MonsterTypeTable() {
|
|||||||
"signed_enum"
|
"signed_enum"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 49, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 49, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -3528,7 +3528,7 @@ inline const flatbuffers::TypeTable *TypeAliasesTypeTable() {
|
|||||||
"vf64"
|
"vf64"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 12, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -221,7 +221,7 @@ inline const flatbuffers::TypeTable *EnumInNestedNSTypeTable() {
|
|||||||
"C"
|
"C"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_ENUM, 3, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -234,7 +234,7 @@ inline const flatbuffers::TypeTable *TableInNestedNSTypeTable() {
|
|||||||
"foo"
|
"foo"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -250,7 +250,7 @@ inline const flatbuffers::TypeTable *StructInNestedNSTypeTable() {
|
|||||||
"b"
|
"b"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 2, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ inline const flatbuffers::TypeTable *TableInFirstNSTypeTable() {
|
|||||||
"foo_struct"
|
"foo_struct"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 3, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 3, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -478,7 +478,7 @@ inline const flatbuffers::TypeTable *TableInCTypeTable() {
|
|||||||
"refer_to_a2"
|
"refer_to_a2"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -498,7 +498,7 @@ inline const flatbuffers::TypeTable *SecondTableInATypeTable() {
|
|||||||
"refer_to_c"
|
"refer_to_c"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -170,7 +170,7 @@ inline const flatbuffers::TypeTable *Vector3DTypeTable() {
|
|||||||
"z"
|
"z"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 3, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 3, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -186,7 +186,7 @@ inline const flatbuffers::TypeTable *ApplicationDataTypeTable() {
|
|||||||
"vectors"
|
"vectors"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -803,7 +803,7 @@ inline const flatbuffers::TypeTable *OptionalByteTypeTable() {
|
|||||||
"One"
|
"One"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_ENUM, 2, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_ENUM, 2, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -887,7 +887,7 @@ inline const flatbuffers::TypeTable *ScalarStuffTypeTable() {
|
|||||||
"default_enum"
|
"default_enum"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 35, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 35, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1108,6 +1108,30 @@ void MiniReflectFlatBuffersTest(uint8_t *flatbuf) {
|
|||||||
"16, b: 32 } }");
|
"16, b: 32 } }");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MiniReflectFixedLengthArrayTest() {
|
||||||
|
// VS10 does not support typed enums, exclude from tests
|
||||||
|
#if !defined(_MSC_VER) || _MSC_VER >= 1700
|
||||||
|
flatbuffers::FlatBufferBuilder fbb;
|
||||||
|
MyGame::Example::ArrayStruct aStruct(2, 12, 1);
|
||||||
|
auto aTable = MyGame::Example::CreateArrayTable(fbb, &aStruct);
|
||||||
|
fbb.Finish(aTable);
|
||||||
|
|
||||||
|
auto flatbuf = fbb.Release();
|
||||||
|
auto s = flatbuffers::FlatBufferToString(
|
||||||
|
flatbuf.data(), MyGame::Example::ArrayTableTypeTable());
|
||||||
|
TEST_EQ_STR(
|
||||||
|
"{ "
|
||||||
|
"a: { a: 2.0, "
|
||||||
|
"b: [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], "
|
||||||
|
"c: 12, "
|
||||||
|
"d: [ { a: [ 0, 0 ], b: A, c: [ A, A ], d: [ 0, 0 ] }, "
|
||||||
|
"{ a: [ 0, 0 ], b: A, c: [ A, A ], d: [ 0, 0 ] } ], "
|
||||||
|
"e: 1, f: [ 0, 0 ] } "
|
||||||
|
"}",
|
||||||
|
s.c_str());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
// Parse a .proto schema, output as .fbs
|
// Parse a .proto schema, output as .fbs
|
||||||
void ParseProtoTest() {
|
void ParseProtoTest() {
|
||||||
// load the .proto and the golden file from disk
|
// load the .proto and the golden file from disk
|
||||||
@@ -3566,6 +3590,7 @@ int FlatBufferTests() {
|
|||||||
ObjectFlatBuffersTest(flatbuf.data());
|
ObjectFlatBuffersTest(flatbuf.data());
|
||||||
|
|
||||||
MiniReflectFlatBuffersTest(flatbuf.data());
|
MiniReflectFlatBuffersTest(flatbuf.data());
|
||||||
|
MiniReflectFixedLengthArrayTest();
|
||||||
|
|
||||||
SizePrefixedTest();
|
SizePrefixedTest();
|
||||||
|
|
||||||
|
|||||||
@@ -752,7 +752,7 @@ inline const flatbuffers::TypeTable *CharacterTypeTable() {
|
|||||||
"Unused"
|
"Unused"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_UNION, 7, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_UNION, 7, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -765,7 +765,7 @@ inline const flatbuffers::TypeTable *AttackerTypeTable() {
|
|||||||
"sword_attack_damage"
|
"sword_attack_damage"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, names
|
flatbuffers::ST_TABLE, 1, type_codes, nullptr, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -779,7 +779,7 @@ inline const flatbuffers::TypeTable *RapunzelTypeTable() {
|
|||||||
"hair_length"
|
"hair_length"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 1, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -793,7 +793,7 @@ inline const flatbuffers::TypeTable *BookReaderTypeTable() {
|
|||||||
"books_read"
|
"books_read"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_STRUCT, 1, type_codes, nullptr, values, names
|
flatbuffers::ST_STRUCT, 1, type_codes, nullptr, nullptr, values, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
@@ -815,7 +815,7 @@ inline const flatbuffers::TypeTable *MovieTypeTable() {
|
|||||||
"characters"
|
"characters"
|
||||||
};
|
};
|
||||||
static const flatbuffers::TypeTable tt = {
|
static const flatbuffers::TypeTable tt = {
|
||||||
flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, names
|
flatbuffers::ST_TABLE, 4, type_codes, type_refs, nullptr, nullptr, names
|
||||||
};
|
};
|
||||||
return &tt;
|
return &tt;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user