@@ -11,6 +11,8 @@ extern "C" {
1111#include <stdint.h>
1212#endif
1313
14+ #include "../../config/config.h"
15+
1416/*
1517 * This should match generated type declaratios in
1618 * `flatbuffers_common_reader.h` (might have different name prefix).
@@ -42,52 +44,95 @@ extern "C" {
4244#define flatbuffers_utype_t_defined
4345#define flatbuffers_bool_t_defined
4446#define flatbuffers_thash_t_defined
45- #define flatbuffers_fid_t_defined
46-
47- /* uoffset_t is also used for vector and string headers. */
48- #define FLATBUFFERS_UOFFSET_MAX UINT32_MAX
49- #define FLATBUFFERS_SOFFSET_MAX INT32_MAX
50- #define FLATBUFFERS_SOFFSET_MIN INT32_MIN
51- #define FLATBUFFERS_VOFFSET_MAX UINT16_MAX
52- #define FLATBUFFERS_UTYPE_MAX UINT8_MAX
53- /* Well - the max of the underlying type. */
54- #define FLATBUFFERS_BOOL_MAX UINT8_MAX
55- #define FLATBUFFERS_THASH_MAX UINT32_MAX
5647
5748#define FLATBUFFERS_ID_MAX (FLATBUFFERS_VOFFSET_MAX / sizeof(flatbuffers_voffset_t) - 3)
5849/* Vectors of empty structs can yield div by zero, so we must guard against this. */
5950#define FLATBUFFERS_COUNT_MAX (elem_size ) (FLATBUFFERS_UOFFSET_MAX/((elem_size) == 0 ? 1 : (elem_size)))
6051
61- #define FLATBUFFERS_UOFFSET_WIDTH 32
62- #define FLATBUFFERS_COUNT_WIDTH 32
63- #define FLATBUFFERS_SOFFSET_WIDTH 32
64- #define FLATBUFFERS_VOFFSET_WIDTH 16
65- #define FLATBUFFERS_UTYPE_WIDTH 8
66- #define FLATBUFFERS_BOOL_WIDTH 8
67- #define FLATBUFFERS_THASH_WIDTH 32
6852
6953#define FLATBUFFERS_TRUE 1
7054#define FLATBUFFERS_FALSE 0
7155
7256#define FLATBUFFERS_PROTOCOL_IS_LE 1
7357#define FLATBUFFERS_PROTOCOL_IS_BE 0
7458
59+ /* uoffset_t is also used for vector and string headers. */
60+ #if FLATCC_OFFSET_SIZE == 4
7561typedef uint32_t flatbuffers_uoffset_t ;
7662typedef int32_t flatbuffers_soffset_t ;
63+ typedef uint32_t flatbuffers_thash_t ;
64+ #define FLATBUFFERS_UOFFSET_MAX UINT32_MAX
65+ #define FLATBUFFERS_SOFFSET_MAX INT32_MAX
66+ #define FLATBUFFERS_SOFFSET_MIN INT32_MIN
67+ #define FLATBUFFERS_THASH_MAX UINT32_MAX
68+ #define FLATBUFFERS_UOFFSET_WIDTH 32
69+ #define FLATBUFFERS_SOFFSET_WIDTH 32
70+ #define FLATBUFFERS_THASH_WIDTH 32
71+ #elif FLATCC_OFFSET_SIZE == 8
72+ typedef uint64_t flatbuffers_uoffset_t ;
73+ typedef int64_t flatbuffers_soffset_t ;
74+ typedef uint64_t flatbuffers_thash_t ;
75+ #define FLATBUFFERS_UOFFSET_MAX UINT64_MAX
76+ #define FLATBUFFERS_SOFFSET_MAX INT64_MAX
77+ #define FLATBUFFERS_SOFFSET_MIN INT64_MIN
78+ #define FLATBUFFERS_THASH_MAX UINT64_MAX
79+ #define FLATBUFFERS_UOFFSET_WIDTH 64
80+ #define FLATBUFFERS_SOFFSET_WIDTH 64
81+ #define FLATBUFFERS_THASH_WIDTH 64
82+ #elif FLATCC_OFFSET_SIZE == 2
83+ typedef uint16_t flatbuffers_uoffset_t ;
84+ typedef int16_t flatbuffers_soffset_t ;
85+ typedef uint16_t flatbuffers_thash_t ;
86+ #define FLATBUFFERS_UOFFSET_MAX UINT16_MAX
87+ #define FLATBUFFERS_SOFFSET_MAX INT16_MAX
88+ #define FLATBUFFERS_SOFFSET_MIN INT16_MIN
89+ #define FLATBUFFERS_THASH_MAX UINT16_MAX
90+ #define FLATBUFFERS_UOFFSET_WIDTH 16
91+ #define FLATBUFFERS_SOFFSET_WIDTH 16
92+ #define FLATBUFFERS_THASH_WIDTH 16
93+ #else
94+ #error FLATCC_OFFSET_SIZE must be defined.
95+ #endif
96+
97+ #if FLATCC_VOFFSET_SIZE == 2
7798typedef uint16_t flatbuffers_voffset_t ;
99+ #define FLATBUFFERS_VOFFSET_MAX UINT16_MAX
100+ #define FLATBUFFERS_VOFFSET_WIDTH 16
101+ #elif FLATCC_VOFFSET_SIZE == 8
102+ typedef uint64_t flatbuffers_voffset_t ;
103+ #define FLATBUFFERS_VOFFSET_MAX UINT64_MAX
104+ #define FLATBUFFERS_VOFFSET_WIDTH 64
105+ #elif FLATCC_VOFFSET_SIZE == 4
106+ typedef uint32_t flatbuffers_voffset_t ;
107+ #define FLATBUFFERS_VOFFSET_MAX UINT32_MAX
108+ #define FLATBUFFERS_VOFFSET_WIDTH 32
109+ #else
110+ #error FLATCC_VOFFSET_SIZE must be defined.
111+ #endif
112+
113+ #define FLATBUFFERS_UTYPE_MAX UINT8_MAX
114+ #define FLATBUFFERS_UTYPE_WIDTH 8
78115typedef uint8_t flatbuffers_utype_t ;
116+
117+ /* Well - the max of the underlying type. */
118+ #define FLATBUFFERS_BOOL_MAX UINT8_MAX
119+ #define FLATBUFFERS_BOOL_WIDTH 8
79120typedef uint8_t flatbuffers_bool_t ;
80- typedef uint32_t flatbuffers_thash_t ;
121+
81122/* Public facing type operations. */
82123typedef flatbuffers_utype_t flatbuffers_union_type_t ;
83124
84125static const flatbuffers_bool_t flatbuffers_true = FLATBUFFERS_TRUE ;
85126static const flatbuffers_bool_t flatbuffers_false = FLATBUFFERS_FALSE ;
86127
87- #define FLATBUFFERS_IDENTIFIER_SIZE (FLATBUFFERS_THASH_WIDTH / 8)
128+ #ifndef flatbuffers_fid_t_defined
129+ #define FLATBUFFERS_IDENTIFIER_SIZE FLATCC_OFFSET_SIZE
88130
89131typedef char flatbuffers_fid_t [FLATBUFFERS_IDENTIFIER_SIZE ];
90132
133+ #define flatbuffers_fid_t_defined
134+ #endif
135+
91136#endif /* flatbuffers_types_defined */
92137
93138#ifdef __cplusplus
0 commit comments