This is an automated email from the ASF dual-hosted git repository.

paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git


The following commit(s) were added to refs/heads/main by this push:
     new e7498afa chore: Update vendored flatcc and regenerate flatcc headers 
(#854)
e7498afa is described below

commit e7498afaf0f5b5f4ea75a3058d6704b8e611b089
Author: Dewey Dunnington <[email protected]>
AuthorDate: Fri Mar 6 08:41:42 2026 -0600

    chore: Update vendored flatcc and regenerate flatcc headers (#854)
    
    The updates to flatcc since the last time we did this are minimal. I
    kept two modifications (ignoring a dead store for clang-analyzer and
    ensuring that the align macro continues to be suppressed for clang that
    already has it built in). I added one more for #850 (commenting out
    `flatbuffers_true` and `flatbuffers_false`, which are never used).
    
    The arrow format spec has been updated slightly but I think these are
    just comments (we already support decimal32/64).
    
    Closes #850.
    
    ```
    root@60c644e4d256:/arrow-nanoarrow/r# R CMD INSTALL .
    * installing to library '/usr/local/lib/R/site-library'
    * installing *source* package 'nanoarrow' ...
    ** using staged installation
    Vendoring files from arrow-nanoarrow to src/:
    [0] python3 ../ci/scripts/bundle.py  --symbol-namespace=RPkg 
--header-namespace= --include-output-dir=src --source-output-dir=src --with-ipc 
--with-flatcc
    Found vendored nanoarrow
    Using PKG_CPPFLAGS=
    Using PKG_LIBS=
    ** libs
    using C compiler: 'gcc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0'
    using C++ compiler: 'g++ (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0'
    gcc -I"/usr/share/R/include" -DNDEBUG -I../inst/include -I../src 
-DFLATCC_USE_GENERIC_ALIGNED_ALLOC       -fPIC  -Wunused-const-variable 
-Wmisleading-indentation -c flatcc.c -o flatcc.o
    gcc -I"/usr/share/R/include" -DNDEBUG -I../inst/include -I../src 
-DFLATCC_USE_GENERIC_ALIGNED_ALLOC       -fPIC  -Wunused-const-variable 
-Wmisleading-indentation -c nanoarrow.c -o nanoarrow.o
    gcc -I"/usr/share/R/include" -DNDEBUG -I../inst/include -I../src 
-DFLATCC_USE_GENERIC_ALIGNED_ALLOC       -fPIC  -Wunused-const-variable 
-Wmisleading-indentation -c nanoarrow_ipc.c -o nanoarrow_ipc.o
    g++ -std=gnu++17 -shared -L/usr/lib/R/lib -Wl,-Bsymbolic-functions 
-flto=auto -ffat-lto-objects -Wl,-z,relro -o nanoarrow.so altrep.o array.o 
array_stream.o array_view.o as_array.o buffer.o convert.o convert_array.o 
convert_array_stream.o flatcc.o infer_ptype.o init.o ipc.o materialize.o 
nanoarrow.o nanoarrow_cpp.o nanoarrow_ipc.o pointers.o schema.o util.o vctr.o 
version.o -L/usr/lib/R/lib -lR
    installing to /usr/local/lib/R/site-library/00LOCK-r/00new/nanoarrow/libs
    ** R
    ** inst
    ** byte-compile and prepare package for lazy loading
    ** help
    *** installing help indices
    ** building package indices
    ** testing if installed package can be loaded from temporary location
    ** checking absolute paths in shared objects and dynamic libraries
    ** testing if installed package can be loaded from final location
    ** testing if installed package keeps a record of temporary installation 
path
    * DONE (nanoarrow)
    ```
---
 dev/update_fbs.sh                                  |  17 ++-
 dev/update_vendored_flatcc.sh                      |   7 +-
 src/nanoarrow/ipc/decoder.c                        |  44 ++++++-
 src/nanoarrow/ipc/flatcc_generated.h               | 138 +++++++++++----------
 thirdparty/flatcc/include/flatcc/flatcc_endian.h   |   2 +-
 thirdparty/flatcc/include/flatcc/flatcc_types.h    |   5 +-
 thirdparty/flatcc/include/flatcc/flatcc_verifier.h |   4 +-
 .../flatcc/include/flatcc/portable/pstdint.h       |   2 +-
 thirdparty/flatcc/src/runtime/builder.c            |   7 +-
 thirdparty/flatcc/src/runtime/verifier.c           |   2 +-
 10 files changed, 147 insertions(+), 81 deletions(-)

diff --git a/dev/update_fbs.sh b/dev/update_fbs.sh
index 787e13c6..a1a76265 100755
--- a/dev/update_fbs.sh
+++ b/dev/update_fbs.sh
@@ -15,6 +15,11 @@
 # specific language governing permissions and limitations
 # under the License.
 
+REPO=`git rev-parse --show-toplevel`
+if [ -z "$REPO" ]; then
+  exit 1
+fi
+
 # get the .fbs files from the arrow repo
 mkdir -p format && cd format
 
@@ -24,8 +29,16 @@ curl -L 
https://github.com/apache/arrow/raw/main/format/SparseTensor.fbs --outpu
 curl -L https://github.com/apache/arrow/raw/main/format/Message.fbs --output 
Message.fbs
 curl -L https://github.com/apache/arrow/raw/main/format/File.fbs --output 
File.fbs
 
-# compile using flatcc
-flatcc --common --reader --builder --verifier --recursive --outfile 
../../src/nanoarrow/ipc/flatcc_generated.h *.fbs
+# Download and build flatcc. Use the same version we vendor.
+git clone https://github.com/dvidelabs/flatcc.git
+git -C flatcc checkout e3e44836c5f625b5532586ddce895f8b5e36a212
+
+pushd flatcc
+cmake . && cmake --build .
+popd
+
+GENERATED="${REPO}/src/nanoarrow/ipc/flatcc_generated.h"
+flatcc/bin/flatcc --common --reader --builder --verifier --recursive --outfile 
"${GENERATED}" *.fbs
 
 # clean up
 cd ..
diff --git a/dev/update_vendored_flatcc.sh b/dev/update_vendored_flatcc.sh
index 716e5f97..55e78682 100755
--- a/dev/update_vendored_flatcc.sh
+++ b/dev/update_vendored_flatcc.sh
@@ -22,7 +22,7 @@ fi
 
 # Download flatcc
 git clone https://github.com/dvidelabs/flatcc.git
-git -C flatcc checkout bf4f67a16d85541e474f1d67b8fb64913ba72bc7
+git -C flatcc checkout e3e44836c5f625b5532586ddce895f8b5e36a212
 
 # Remove previous vendored flatcc
 rm -rf $REPO/thirdparty/flatcc
@@ -45,6 +45,11 @@ cp flatcc/src/runtime/emitter.c \
 # This list is in topological order and could be used for a single-file 
include;
 # however, this approach is easier to support alongside a previous installation
 # of the flatcc runtime.
+if ! command -v makedepend > /dev/null 2>&1 ; then
+  echo "update_vendored_flatccc.sh requires makedepend (e.g., brew install 
makedepend)"
+  exit 1
+fi
+
 makedepend -s#: -f- -- -Iflatcc/include -I$REPO/src -DFLATCC_PORTABLE -- 
2>/dev/null \
   `ls $REPO/thirdparty/flatcc/src/runtime/*.c` `ls 
$REPO/src/nanoarrow/ipc/*.c` | \
   # Remove the '<src file>.o: ' prefix
diff --git a/src/nanoarrow/ipc/decoder.c b/src/nanoarrow/ipc/decoder.c
index 202715e8..07bfbe0f 100644
--- a/src/nanoarrow/ipc/decoder.c
+++ b/src/nanoarrow/ipc/decoder.c
@@ -102,8 +102,50 @@ struct ArrowIpcDecoderPrivate {
 };
 
 ArrowErrorCode ArrowIpcCheckRuntime(struct ArrowError* error) {
-  // Avoids an unused warning when bundling the header into nanoarrow_ipc.c
+  // Avoids unused warnings when bundling the header into nanoarrow_ipc.c
   NANOARROW_UNUSED(flatbuffers_end);
+  NANOARROW_UNUSED(flatcc_builder_is_nested);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Null_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Struct__required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_List_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_LargeList_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_ListView_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_LargeListView_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_FixedSizeList_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Map_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Union_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Int_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_FloatingPoint_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Utf8_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Binary_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_LargeUtf8_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_LargeBinary_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Utf8View_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_BinaryView_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_FixedSizeBinary_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Bool_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_RunEndEncoded_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Decimal_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Date_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Time_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Timestamp_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Interval_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Duration_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_KeyValue_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_DictionaryEncoding_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Field_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Schema_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Footer_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_TensorDim_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Tensor_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_SparseTensorIndexCOO_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_SparseMatrixIndexCSX_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_SparseTensorIndexCSF_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_SparseTensor_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_BodyCompression_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_RecordBatch_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_DictionaryBatch_required);
+  NANOARROW_UNUSED(__org_apache_arrow_flatbuf_Message_required);
 
   const char* nanoarrow_runtime_version = ArrowNanoarrowVersion();
   const char* nanoarrow_ipc_build_time_version = NANOARROW_VERSION;
diff --git a/src/nanoarrow/ipc/flatcc_generated.h 
b/src/nanoarrow/ipc/flatcc_generated.h
index a78a73f8..82ba6b45 100644
--- a/src/nanoarrow/ipc/flatcc_generated.h
+++ b/src/nanoarrow/ipc/flatcc_generated.h
@@ -189,7 +189,7 @@ static inline int N ## _ ## NK ## _is_present(N ## _table_t 
t__tmp)\
 __## NS ## field_present(ID, t__tmp)\
 static inline T ## _union_t N ## _ ## NK ## _union(N ## _table_t t__tmp)\
 { T ## _union_t u__tmp = { 0, 0 }; u__tmp.type = N ## _ ## NK ## 
_type_get(t__tmp);\
-  if (u__tmp.type == 0) return u__tmp; u__tmp.value = N ## _ ## NK ## 
_get(t__tmp); return u__tmp; }\
+  if (u__tmp.type == 0) { return u__tmp; } u__tmp.value = N ## _ ## NK ## 
_get(t__tmp); return u__tmp; }\
 static inline NS ## string_t N ## _ ## NK ## _as_string(N ## _table_t t__tmp)\
 { return NS ## string_cast_from_generic(N ## _ ## NK ## _get(t__tmp)); }\
 
@@ -810,7 +810,7 @@ static inline N ## _union_vec_ref_t N ## _vec_clone(NS ## 
builder_t *B, N ##_uni
   _uvref.type = flatcc_builder_refmap_find(B, vec.type); _uvref.value = 
flatcc_builder_refmap_find(B, vec.value);\
   _len = N ## _union_vec_len(vec); if (_uvref.type == 0) {\
   _uvref.type = flatcc_builder_refmap_insert(B, vec.type, 
(flatcc_builder_create_type_vector(B, vec.type, _len))); }\
-  if (_uvref.type == 0) return _ret; if (_uvref.value == 0) {\
+  if (_uvref.type == 0) { return _ret; } if (_uvref.value == 0) {\
   if (flatcc_builder_start_offset_vector(B)) return _ret;\
   for (_i = 0; _i < _len; ++_i) { _uref = N ## _clone(B, N ## 
_union_vec_at(vec, _i));\
     if (!_uref.value || !(flatcc_builder_offset_vector_push(B, _uref.value))) 
return _ret; }\
@@ -915,11 +915,11 @@ __flatbuffers_build_offset_vector(NS, NS ## string)
 static inline T *N ## _array_copy(T *p, const T *p2, size_t n)\
 { memcpy(p, p2, n * sizeof(T)); return p; }\
 static inline T *N ## _array_copy_from_pe(T *p, const T *p2, size_t n)\
-{ size_t i; if (NS ## is_native_pe()) memcpy(p, p2, n * sizeof(T)); else\
-  for (i = 0; i < n; ++i) N ## _copy_from_pe(&p[i], &p2[i]); return p; }\
+{ size_t i; if (NS ## is_native_pe()) memcpy(p, p2, n * sizeof(T)); else {\
+  for (i = 0; i < n; ++i) N ## _copy_from_pe(&p[i], &p2[i]); } return p; }\
 static inline T *N ## _array_copy_to_pe(T *p, const T *p2, size_t n)\
-{ size_t i; if (NS ## is_native_pe()) memcpy(p, p2, n * sizeof(T)); else\
-  for (i = 0; i < n; ++i) N ## _copy_to_pe(&p[i], &p2[i]); return p; }
+{ size_t i; if (NS ## is_native_pe()) memcpy(p, p2, n * sizeof(T)); else {\
+  for (i = 0; i < n; ++i) N ## _copy_to_pe(&p[i], &p2[i]); } return p; }
 #define __flatbuffers_define_scalar_primitives(NS, N, T)\
 static inline T *N ## _from_pe(T *p) { return __ ## NS ## from_pe(p, N); }\
 static inline T *N ## _to_pe(T *p) { return __ ## NS ## to_pe(p, N); }\
@@ -1823,8 +1823,8 @@ static inline int 
org_apache_arrow_flatbuf_MetadataVersion_is_known_value(org_ap
  *       forward compatibility guarantees).
  *   2.  A means of negotiating between a client and server
  *       what features a stream is allowed to use. The enums
- *       values here are intented to represent higher level
- *       features, additional details maybe negotiated
+ *       values here are intended to represent higher level
+ *       features, additional details may be negotiated
  *       with key-value pairs specific to the protocol.
  *
  *  Enums added to this list should be assigned power-of-two values
@@ -2149,7 +2149,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_FixedSizeList, lis
  *  may be set in the metadata for this field.
  *
  *  In a field with Map type, the field has a child Struct field, which then
- *  has two children: key type and the second the value type. The names of the
+ *  has two children: the key type and the value type. The names of the
  *  child fields may be respectively "entries", "key", and "value", but this is
  *  not enforced.
  *
@@ -2320,9 +2320,9 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_RunEndEncoded)
 
 
 /**  Exact decimal value represented as an integer value in two's
- *  complement. Currently only 128-bit (16-byte) and 256-bit (32-byte) integers
- *  are used. The representation uses the endianness indicated
- *  in the Schema. */
+ *  complement. Currently 32-bit (4-byte), 64-bit (8-byte),
+ *  128-bit (16-byte) and 256-bit (32-byte) integers are used.
+ *  The representation uses the endianness indicated in the Schema. */
 struct org_apache_arrow_flatbuf_Decimal_table { uint8_t unused__; };
 
 static inline size_t 
org_apache_arrow_flatbuf_Decimal_vec_len(org_apache_arrow_flatbuf_Decimal_vec_t 
vec)
@@ -2335,7 +2335,7 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_Decimal)
 __flatbuffers_define_scalar_field(0, org_apache_arrow_flatbuf_Decimal, 
precision, flatbuffers_int32, int32_t, INT32_C(0))
 /**  Number of digits after the decimal point "." */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Decimal, scale, 
flatbuffers_int32, int32_t, INT32_C(0))
-/**  Number of bits per value. The only accepted widths are 128 and 256.
+/**  Number of bits per value. The accepted widths are 32, 64, 128 and 256.
  *  We use bitWidth for consistency with Int::bitWidth. */
 __flatbuffers_define_scalar_field(2, org_apache_arrow_flatbuf_Decimal, 
bitWidth, flatbuffers_int32, int32_t, INT32_C(128))
 
@@ -2661,7 +2661,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_DictionaryEncoding
  *  and to avoid uint64 indices unless they are required by an application. */
 __flatbuffers_define_table_field(1, 
org_apache_arrow_flatbuf_DictionaryEncoding, indexType, 
org_apache_arrow_flatbuf_Int_table_t, 0)
 /**  By default, dictionaries are not ordered, or the order does not have
- *  semantic meaning. In some statistical, applications, dictionary-encoding
+ *  semantic meaning. In some statistical applications, dictionary-encoding
  *  is used to represent ordered categorical data, and we provide a way to
  *  preserve that metadata here */
 __flatbuffers_define_scalar_field(2, 
org_apache_arrow_flatbuf_DictionaryEncoding, isOrdered, flatbuffers_bool, 
flatbuffers_bool_t, UINT8_C(0))
@@ -2678,7 +2678,7 @@ static inline org_apache_arrow_flatbuf_Field_table_t 
org_apache_arrow_flatbuf_Fi
 __flatbuffers_offset_vec_at(org_apache_arrow_flatbuf_Field_table_t, vec, i, 0)
 __flatbuffers_table_as_root(org_apache_arrow_flatbuf_Field)
 
-/**  Name is not required, in i.e. a List */
+/**  Name is not required (e.g., in a List) */
 __flatbuffers_define_string_field(0, org_apache_arrow_flatbuf_Field, name, 0)
 /**  Whether or not this field can contain nulls. Should be true in general. */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Field, nullable, 
flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
@@ -5427,7 +5427,7 @@ typedef flatbuffers_uoffset_t 
*org_apache_arrow_flatbuf_Footer_mutable_vec_t;
 
 
 struct org_apache_arrow_flatbuf_Block {
-    /**  Index to the start of the RecordBlock (note this is past the Message 
header) */
+    /**  Index to the start of the RecordBatch (note this is past the Message 
header) */
     alignas(8) int64_t offset;
     /**  Length of the metadata */
     alignas(4) int32_t metaDataLength;
@@ -6235,8 +6235,8 @@ static inline int 
org_apache_arrow_flatbuf_MetadataVersion_is_known_value(org_ap
  *       forward compatibility guarantees).
  *   2.  A means of negotiating between a client and server
  *       what features a stream is allowed to use. The enums
- *       values here are intented to represent higher level
- *       features, additional details maybe negotiated
+ *       values here are intended to represent higher level
+ *       features, additional details may be negotiated
  *       with key-value pairs specific to the protocol.
  *
  *  Enums added to this list should be assigned power-of-two values
@@ -6561,7 +6561,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_FixedSizeList, lis
  *  may be set in the metadata for this field.
  *
  *  In a field with Map type, the field has a child Struct field, which then
- *  has two children: key type and the second the value type. The names of the
+ *  has two children: the key type and the value type. The names of the
  *  child fields may be respectively "entries", "key", and "value", but this is
  *  not enforced.
  *
@@ -6732,9 +6732,9 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_RunEndEncoded)
 
 
 /**  Exact decimal value represented as an integer value in two's
- *  complement. Currently only 128-bit (16-byte) and 256-bit (32-byte) integers
- *  are used. The representation uses the endianness indicated
- *  in the Schema. */
+ *  complement. Currently 32-bit (4-byte), 64-bit (8-byte),
+ *  128-bit (16-byte) and 256-bit (32-byte) integers are used.
+ *  The representation uses the endianness indicated in the Schema. */
 struct org_apache_arrow_flatbuf_Decimal_table { uint8_t unused__; };
 
 static inline size_t 
org_apache_arrow_flatbuf_Decimal_vec_len(org_apache_arrow_flatbuf_Decimal_vec_t 
vec)
@@ -6747,7 +6747,7 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_Decimal)
 __flatbuffers_define_scalar_field(0, org_apache_arrow_flatbuf_Decimal, 
precision, flatbuffers_int32, int32_t, INT32_C(0))
 /**  Number of digits after the decimal point "." */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Decimal, scale, 
flatbuffers_int32, int32_t, INT32_C(0))
-/**  Number of bits per value. The only accepted widths are 128 and 256.
+/**  Number of bits per value. The accepted widths are 32, 64, 128 and 256.
  *  We use bitWidth for consistency with Int::bitWidth. */
 __flatbuffers_define_scalar_field(2, org_apache_arrow_flatbuf_Decimal, 
bitWidth, flatbuffers_int32, int32_t, INT32_C(128))
 
@@ -7073,7 +7073,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_DictionaryEncoding
  *  and to avoid uint64 indices unless they are required by an application. */
 __flatbuffers_define_table_field(1, 
org_apache_arrow_flatbuf_DictionaryEncoding, indexType, 
org_apache_arrow_flatbuf_Int_table_t, 0)
 /**  By default, dictionaries are not ordered, or the order does not have
- *  semantic meaning. In some statistical, applications, dictionary-encoding
+ *  semantic meaning. In some statistical applications, dictionary-encoding
  *  is used to represent ordered categorical data, and we provide a way to
  *  preserve that metadata here */
 __flatbuffers_define_scalar_field(2, 
org_apache_arrow_flatbuf_DictionaryEncoding, isOrdered, flatbuffers_bool, 
flatbuffers_bool_t, UINT8_C(0))
@@ -7090,7 +7090,7 @@ static inline org_apache_arrow_flatbuf_Field_table_t 
org_apache_arrow_flatbuf_Fi
 __flatbuffers_offset_vec_at(org_apache_arrow_flatbuf_Field_table_t, vec, i, 0)
 __flatbuffers_table_as_root(org_apache_arrow_flatbuf_Field)
 
-/**  Name is not required, in i.e. a List */
+/**  Name is not required (e.g., in a List) */
 __flatbuffers_define_string_field(0, org_apache_arrow_flatbuf_Field, name, 0)
 /**  Whether or not this field can contain nulls. Should be true in general. */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Field, nullable, 
flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
@@ -10236,11 +10236,11 @@ static inline int 
org_apache_arrow_flatbuf_SparseMatrixCompressedAxis_is_known_v
  *  EXPERIMENTAL: Data structures for sparse tensors
  *  Coordinate (COO) format of sparse tensor index.
  *
- *  COO's index list are represented as a NxM matrix,
+ *  COO's index list is represented as an NxM matrix,
  *  where N is the number of non-zero values,
  *  and M is the number of dimensions of a sparse tensor.
  *
- *  indicesBuffer stores the location and size of the data of this indices
+ *  indicesBuffer stores the location and size of the data of these indices
  *  matrix.  The value type and the stride of the indices matrix is
  *  specified in indicesType and indicesStrides fields.
  *
@@ -10261,7 +10261,7 @@ static inline int 
org_apache_arrow_flatbuf_SparseMatrixCompressedAxis_is_known_v
  *     [2, 2, 3, 1, 2, 0],
  *     [0, 1, 0, 0, 3, 4]]
  *  ```
- *  When isCanonical is true, the indices is sorted in lexicographical order
+ *  When isCanonical is true, the indices are sorted in lexicographical order
  *  (row-major order), and it does not have duplicated entries.  Otherwise,
  *  the indices may not be sorted, or may have duplicated entries. */
 struct org_apache_arrow_flatbuf_SparseTensorIndexCOO_table { uint8_t unused__; 
};
@@ -10329,7 +10329,7 @@ __flatbuffers_define_table_field(3, 
org_apache_arrow_flatbuf_SparseMatrixIndexCS
  *  contains the column indices of the corresponding non-zero values.
  *  The type of index value is long.
  *
- *  For example, the indices of the above X is:
+ *  For example, the indices of the above X are:
  *  ```text
  *    indices(X) = [1, 2, 2, 1, 3, 0, 2, 3, 1].
  *  ```
@@ -10351,7 +10351,7 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_SparseTensorIndexCSF)
  *  CSF index recursively compresses each dimension of a tensor into a set
  *  of prefix trees. Each path from a root to leaf forms one tensor
  *  non-zero index. CSF is implemented with two arrays of buffers and one
- *  arrays of integers.
+ *  array of integers.
  *
  *  For example, let X be a 2x3x4x5 tensor and let it have the following
  *  8 non-zero values:
@@ -10383,7 +10383,7 @@ __flatbuffers_define_table_field(0, 
org_apache_arrow_flatbuf_SparseTensorIndexCS
  *  and `indptrBuffers[dim][i + 1]` signify a range of nodes in
  *  `indicesBuffers[dim + 1]` who are children of `indicesBuffers[dim][i]` 
node.
  *
- *  For example, the indptrBuffers for the above X is:
+ *  For example, the indptrBuffers for the above X are:
  *  ```text
  *    indptrBuffer(X) = [
  *                        [0, 2, 3],
@@ -10396,7 +10396,7 @@ __flatbuffers_define_vector_field(1, 
org_apache_arrow_flatbuf_SparseTensorIndexC
 __flatbuffers_define_table_field(2, 
org_apache_arrow_flatbuf_SparseTensorIndexCSF, indicesType, 
org_apache_arrow_flatbuf_Int_table_t, 1)
 /**  indicesBuffers stores values of nodes.
  *  Each tensor dimension corresponds to a buffer in indicesBuffers.
- *  For example, the indicesBuffers for the above X is:
+ *  For example, the indicesBuffers for the above X are:
  *  ```text
  *    indicesBuffer(X) = [
  *                         [0, 1],
@@ -11106,7 +11106,9 @@ 
__flatbuffers_define_integer_type(org_apache_arrow_flatbuf_BodyCompressionMethod
  *  buffer bytes (and then padding as required by the protocol). The
  *  uncompressed length may be set to -1 to indicate that the data that
  *  follows is not compressed, which can be useful for cases where
- *  compression does not yield appreciable savings. */
+ *  compression does not yield appreciable savings.
+ *  Also, empty buffers can optionally be written out as 0-byte compressed
+ *  buffers, thereby omitting the 8-bytes length header. */
 #define org_apache_arrow_flatbuf_BodyCompressionMethod_BUFFER 
((org_apache_arrow_flatbuf_BodyCompressionMethod_enum_t)INT8_C(0))
 
 static inline const char 
*org_apache_arrow_flatbuf_BodyCompressionMethod_name(org_apache_arrow_flatbuf_BodyCompressionMethod_enum_t
 value)
@@ -11203,7 +11205,7 @@ __flatbuffers_define_vector_field(2, 
org_apache_arrow_flatbuf_RecordBatch, buffe
 __flatbuffers_define_table_field(3, org_apache_arrow_flatbuf_RecordBatch, 
compression, org_apache_arrow_flatbuf_BodyCompression_table_t, 0)
 /**  Some types such as Utf8View are represented using a variable number of 
buffers.
  *  For each such Field in the pre-ordered flattened logical schema, there 
will be
- *  an entry in variadicBufferCounts to indicate the number of number of 
variadic
+ *  an entry in variadicBufferCounts to indicate the number of variadic
  *  buffers which belong to that Field in the current RecordBatch.
  *
  *  For example, the schema
@@ -12389,8 +12391,8 @@ static inline int 
org_apache_arrow_flatbuf_MetadataVersion_is_known_value(org_ap
  *       forward compatibility guarantees).
  *   2.  A means of negotiating between a client and server
  *       what features a stream is allowed to use. The enums
- *       values here are intented to represent higher level
- *       features, additional details maybe negotiated
+ *       values here are intended to represent higher level
+ *       features, additional details may be negotiated
  *       with key-value pairs specific to the protocol.
  *
  *  Enums added to this list should be assigned power-of-two values
@@ -12715,7 +12717,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_FixedSizeList, lis
  *  may be set in the metadata for this field.
  *
  *  In a field with Map type, the field has a child Struct field, which then
- *  has two children: key type and the second the value type. The names of the
+ *  has two children: the key type and the value type. The names of the
  *  child fields may be respectively "entries", "key", and "value", but this is
  *  not enforced.
  *
@@ -12886,9 +12888,9 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_RunEndEncoded)
 
 
 /**  Exact decimal value represented as an integer value in two's
- *  complement. Currently only 128-bit (16-byte) and 256-bit (32-byte) integers
- *  are used. The representation uses the endianness indicated
- *  in the Schema. */
+ *  complement. Currently 32-bit (4-byte), 64-bit (8-byte),
+ *  128-bit (16-byte) and 256-bit (32-byte) integers are used.
+ *  The representation uses the endianness indicated in the Schema. */
 struct org_apache_arrow_flatbuf_Decimal_table { uint8_t unused__; };
 
 static inline size_t 
org_apache_arrow_flatbuf_Decimal_vec_len(org_apache_arrow_flatbuf_Decimal_vec_t 
vec)
@@ -12901,7 +12903,7 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_Decimal)
 __flatbuffers_define_scalar_field(0, org_apache_arrow_flatbuf_Decimal, 
precision, flatbuffers_int32, int32_t, INT32_C(0))
 /**  Number of digits after the decimal point "." */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Decimal, scale, 
flatbuffers_int32, int32_t, INT32_C(0))
-/**  Number of bits per value. The only accepted widths are 128 and 256.
+/**  Number of bits per value. The accepted widths are 32, 64, 128 and 256.
  *  We use bitWidth for consistency with Int::bitWidth. */
 __flatbuffers_define_scalar_field(2, org_apache_arrow_flatbuf_Decimal, 
bitWidth, flatbuffers_int32, int32_t, INT32_C(128))
 
@@ -13227,7 +13229,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_DictionaryEncoding
  *  and to avoid uint64 indices unless they are required by an application. */
 __flatbuffers_define_table_field(1, 
org_apache_arrow_flatbuf_DictionaryEncoding, indexType, 
org_apache_arrow_flatbuf_Int_table_t, 0)
 /**  By default, dictionaries are not ordered, or the order does not have
- *  semantic meaning. In some statistical, applications, dictionary-encoding
+ *  semantic meaning. In some statistical applications, dictionary-encoding
  *  is used to represent ordered categorical data, and we provide a way to
  *  preserve that metadata here */
 __flatbuffers_define_scalar_field(2, 
org_apache_arrow_flatbuf_DictionaryEncoding, isOrdered, flatbuffers_bool, 
flatbuffers_bool_t, UINT8_C(0))
@@ -13244,7 +13246,7 @@ static inline org_apache_arrow_flatbuf_Field_table_t 
org_apache_arrow_flatbuf_Fi
 __flatbuffers_offset_vec_at(org_apache_arrow_flatbuf_Field_table_t, vec, i, 0)
 __flatbuffers_table_as_root(org_apache_arrow_flatbuf_Field)
 
-/**  Name is not required, in i.e. a List */
+/**  Name is not required (e.g., in a List) */
 __flatbuffers_define_string_field(0, org_apache_arrow_flatbuf_Field, name, 0)
 /**  Whether or not this field can contain nulls. Should be true in general. */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Field, nullable, 
flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
@@ -16495,8 +16497,8 @@ static inline int 
org_apache_arrow_flatbuf_MetadataVersion_is_known_value(org_ap
  *       forward compatibility guarantees).
  *   2.  A means of negotiating between a client and server
  *       what features a stream is allowed to use. The enums
- *       values here are intented to represent higher level
- *       features, additional details maybe negotiated
+ *       values here are intended to represent higher level
+ *       features, additional details may be negotiated
  *       with key-value pairs specific to the protocol.
  *
  *  Enums added to this list should be assigned power-of-two values
@@ -16821,7 +16823,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_FixedSizeList, lis
  *  may be set in the metadata for this field.
  *
  *  In a field with Map type, the field has a child Struct field, which then
- *  has two children: key type and the second the value type. The names of the
+ *  has two children: the key type and the value type. The names of the
  *  child fields may be respectively "entries", "key", and "value", but this is
  *  not enforced.
  *
@@ -16992,9 +16994,9 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_RunEndEncoded)
 
 
 /**  Exact decimal value represented as an integer value in two's
- *  complement. Currently only 128-bit (16-byte) and 256-bit (32-byte) integers
- *  are used. The representation uses the endianness indicated
- *  in the Schema. */
+ *  complement. Currently 32-bit (4-byte), 64-bit (8-byte),
+ *  128-bit (16-byte) and 256-bit (32-byte) integers are used.
+ *  The representation uses the endianness indicated in the Schema. */
 struct org_apache_arrow_flatbuf_Decimal_table { uint8_t unused__; };
 
 static inline size_t 
org_apache_arrow_flatbuf_Decimal_vec_len(org_apache_arrow_flatbuf_Decimal_vec_t 
vec)
@@ -17007,7 +17009,7 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_Decimal)
 __flatbuffers_define_scalar_field(0, org_apache_arrow_flatbuf_Decimal, 
precision, flatbuffers_int32, int32_t, INT32_C(0))
 /**  Number of digits after the decimal point "." */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Decimal, scale, 
flatbuffers_int32, int32_t, INT32_C(0))
-/**  Number of bits per value. The only accepted widths are 128 and 256.
+/**  Number of bits per value. The accepted widths are 32, 64, 128 and 256.
  *  We use bitWidth for consistency with Int::bitWidth. */
 __flatbuffers_define_scalar_field(2, org_apache_arrow_flatbuf_Decimal, 
bitWidth, flatbuffers_int32, int32_t, INT32_C(128))
 
@@ -17333,7 +17335,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_DictionaryEncoding
  *  and to avoid uint64 indices unless they are required by an application. */
 __flatbuffers_define_table_field(1, 
org_apache_arrow_flatbuf_DictionaryEncoding, indexType, 
org_apache_arrow_flatbuf_Int_table_t, 0)
 /**  By default, dictionaries are not ordered, or the order does not have
- *  semantic meaning. In some statistical, applications, dictionary-encoding
+ *  semantic meaning. In some statistical applications, dictionary-encoding
  *  is used to represent ordered categorical data, and we provide a way to
  *  preserve that metadata here */
 __flatbuffers_define_scalar_field(2, 
org_apache_arrow_flatbuf_DictionaryEncoding, isOrdered, flatbuffers_bool, 
flatbuffers_bool_t, UINT8_C(0))
@@ -17350,7 +17352,7 @@ static inline org_apache_arrow_flatbuf_Field_table_t 
org_apache_arrow_flatbuf_Fi
 __flatbuffers_offset_vec_at(org_apache_arrow_flatbuf_Field_table_t, vec, i, 0)
 __flatbuffers_table_as_root(org_apache_arrow_flatbuf_Field)
 
-/**  Name is not required, in i.e. a List */
+/**  Name is not required (e.g., in a List) */
 __flatbuffers_define_string_field(0, org_apache_arrow_flatbuf_Field, name, 0)
 /**  Whether or not this field can contain nulls. Should be true in general. */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Field, nullable, 
flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
@@ -20496,11 +20498,11 @@ static inline int 
org_apache_arrow_flatbuf_SparseMatrixCompressedAxis_is_known_v
  *  EXPERIMENTAL: Data structures for sparse tensors
  *  Coordinate (COO) format of sparse tensor index.
  *
- *  COO's index list are represented as a NxM matrix,
+ *  COO's index list is represented as an NxM matrix,
  *  where N is the number of non-zero values,
  *  and M is the number of dimensions of a sparse tensor.
  *
- *  indicesBuffer stores the location and size of the data of this indices
+ *  indicesBuffer stores the location and size of the data of these indices
  *  matrix.  The value type and the stride of the indices matrix is
  *  specified in indicesType and indicesStrides fields.
  *
@@ -20521,7 +20523,7 @@ static inline int 
org_apache_arrow_flatbuf_SparseMatrixCompressedAxis_is_known_v
  *     [2, 2, 3, 1, 2, 0],
  *     [0, 1, 0, 0, 3, 4]]
  *  ```
- *  When isCanonical is true, the indices is sorted in lexicographical order
+ *  When isCanonical is true, the indices are sorted in lexicographical order
  *  (row-major order), and it does not have duplicated entries.  Otherwise,
  *  the indices may not be sorted, or may have duplicated entries. */
 struct org_apache_arrow_flatbuf_SparseTensorIndexCOO_table { uint8_t unused__; 
};
@@ -20589,7 +20591,7 @@ __flatbuffers_define_table_field(3, 
org_apache_arrow_flatbuf_SparseMatrixIndexCS
  *  contains the column indices of the corresponding non-zero values.
  *  The type of index value is long.
  *
- *  For example, the indices of the above X is:
+ *  For example, the indices of the above X are:
  *  ```text
  *    indices(X) = [1, 2, 2, 1, 3, 0, 2, 3, 1].
  *  ```
@@ -20611,7 +20613,7 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_SparseTensorIndexCSF)
  *  CSF index recursively compresses each dimension of a tensor into a set
  *  of prefix trees. Each path from a root to leaf forms one tensor
  *  non-zero index. CSF is implemented with two arrays of buffers and one
- *  arrays of integers.
+ *  array of integers.
  *
  *  For example, let X be a 2x3x4x5 tensor and let it have the following
  *  8 non-zero values:
@@ -20643,7 +20645,7 @@ __flatbuffers_define_table_field(0, 
org_apache_arrow_flatbuf_SparseTensorIndexCS
  *  and `indptrBuffers[dim][i + 1]` signify a range of nodes in
  *  `indicesBuffers[dim + 1]` who are children of `indicesBuffers[dim][i]` 
node.
  *
- *  For example, the indptrBuffers for the above X is:
+ *  For example, the indptrBuffers for the above X are:
  *  ```text
  *    indptrBuffer(X) = [
  *                        [0, 2, 3],
@@ -20656,7 +20658,7 @@ __flatbuffers_define_vector_field(1, 
org_apache_arrow_flatbuf_SparseTensorIndexC
 __flatbuffers_define_table_field(2, 
org_apache_arrow_flatbuf_SparseTensorIndexCSF, indicesType, 
org_apache_arrow_flatbuf_Int_table_t, 1)
 /**  indicesBuffers stores values of nodes.
  *  Each tensor dimension corresponds to a buffer in indicesBuffers.
- *  For example, the indicesBuffers for the above X is:
+ *  For example, the indicesBuffers for the above X are:
  *  ```text
  *    indicesBuffer(X) = [
  *                         [0, 1],
@@ -21782,8 +21784,8 @@ static inline int 
org_apache_arrow_flatbuf_MetadataVersion_is_known_value(org_ap
  *       forward compatibility guarantees).
  *   2.  A means of negotiating between a client and server
  *       what features a stream is allowed to use. The enums
- *       values here are intented to represent higher level
- *       features, additional details maybe negotiated
+ *       values here are intended to represent higher level
+ *       features, additional details may be negotiated
  *       with key-value pairs specific to the protocol.
  *
  *  Enums added to this list should be assigned power-of-two values
@@ -22108,7 +22110,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_FixedSizeList, lis
  *  may be set in the metadata for this field.
  *
  *  In a field with Map type, the field has a child Struct field, which then
- *  has two children: key type and the second the value type. The names of the
+ *  has two children: the key type and the value type. The names of the
  *  child fields may be respectively "entries", "key", and "value", but this is
  *  not enforced.
  *
@@ -22279,9 +22281,9 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_RunEndEncoded)
 
 
 /**  Exact decimal value represented as an integer value in two's
- *  complement. Currently only 128-bit (16-byte) and 256-bit (32-byte) integers
- *  are used. The representation uses the endianness indicated
- *  in the Schema. */
+ *  complement. Currently 32-bit (4-byte), 64-bit (8-byte),
+ *  128-bit (16-byte) and 256-bit (32-byte) integers are used.
+ *  The representation uses the endianness indicated in the Schema. */
 struct org_apache_arrow_flatbuf_Decimal_table { uint8_t unused__; };
 
 static inline size_t 
org_apache_arrow_flatbuf_Decimal_vec_len(org_apache_arrow_flatbuf_Decimal_vec_t 
vec)
@@ -22294,7 +22296,7 @@ 
__flatbuffers_table_as_root(org_apache_arrow_flatbuf_Decimal)
 __flatbuffers_define_scalar_field(0, org_apache_arrow_flatbuf_Decimal, 
precision, flatbuffers_int32, int32_t, INT32_C(0))
 /**  Number of digits after the decimal point "." */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Decimal, scale, 
flatbuffers_int32, int32_t, INT32_C(0))
-/**  Number of bits per value. The only accepted widths are 128 and 256.
+/**  Number of bits per value. The accepted widths are 32, 64, 128 and 256.
  *  We use bitWidth for consistency with Int::bitWidth. */
 __flatbuffers_define_scalar_field(2, org_apache_arrow_flatbuf_Decimal, 
bitWidth, flatbuffers_int32, int32_t, INT32_C(128))
 
@@ -22620,7 +22622,7 @@ __flatbuffers_define_scalar_field(0, 
org_apache_arrow_flatbuf_DictionaryEncoding
  *  and to avoid uint64 indices unless they are required by an application. */
 __flatbuffers_define_table_field(1, 
org_apache_arrow_flatbuf_DictionaryEncoding, indexType, 
org_apache_arrow_flatbuf_Int_table_t, 0)
 /**  By default, dictionaries are not ordered, or the order does not have
- *  semantic meaning. In some statistical, applications, dictionary-encoding
+ *  semantic meaning. In some statistical applications, dictionary-encoding
  *  is used to represent ordered categorical data, and we provide a way to
  *  preserve that metadata here */
 __flatbuffers_define_scalar_field(2, 
org_apache_arrow_flatbuf_DictionaryEncoding, isOrdered, flatbuffers_bool, 
flatbuffers_bool_t, UINT8_C(0))
@@ -22637,7 +22639,7 @@ static inline org_apache_arrow_flatbuf_Field_table_t 
org_apache_arrow_flatbuf_Fi
 __flatbuffers_offset_vec_at(org_apache_arrow_flatbuf_Field_table_t, vec, i, 0)
 __flatbuffers_table_as_root(org_apache_arrow_flatbuf_Field)
 
-/**  Name is not required, in i.e. a List */
+/**  Name is not required (e.g., in a List) */
 __flatbuffers_define_string_field(0, org_apache_arrow_flatbuf_Field, name, 0)
 /**  Whether or not this field can contain nulls. Should be true in general. */
 __flatbuffers_define_scalar_field(1, org_apache_arrow_flatbuf_Field, nullable, 
flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0))
diff --git a/thirdparty/flatcc/include/flatcc/flatcc_endian.h 
b/thirdparty/flatcc/include/flatcc/flatcc_endian.h
index 0592f313..ab5cbf33 100644
--- a/thirdparty/flatcc/include/flatcc/flatcc_endian.h
+++ b/thirdparty/flatcc/include/flatcc/flatcc_endian.h
@@ -45,7 +45,7 @@ extern "C" {
  * configuration.
  */
 
-#ifndef UINT8_t
+#ifndef UINT8_MAX
 #include <stdint.h>
 #endif
 
diff --git a/thirdparty/flatcc/include/flatcc/flatcc_types.h 
b/thirdparty/flatcc/include/flatcc/flatcc_types.h
index 69605d2d..f4331b0c 100644
--- a/thirdparty/flatcc/include/flatcc/flatcc_types.h
+++ b/thirdparty/flatcc/include/flatcc/flatcc_types.h
@@ -81,8 +81,9 @@ typedef uint32_t flatbuffers_thash_t;
 /* Public facing type operations. */
 typedef flatbuffers_utype_t flatbuffers_union_type_t;
 
-static const flatbuffers_bool_t flatbuffers_true = FLATBUFFERS_TRUE;
-static const flatbuffers_bool_t flatbuffers_false = FLATBUFFERS_FALSE;
+// Unused const variables
+// static const flatbuffers_bool_t flatbuffers_true = FLATBUFFERS_TRUE;
+// static const flatbuffers_bool_t flatbuffers_false = FLATBUFFERS_FALSE;
 
 #define FLATBUFFERS_IDENTIFIER_SIZE (FLATBUFFERS_THASH_WIDTH / 8)
 
diff --git a/thirdparty/flatcc/include/flatcc/flatcc_verifier.h 
b/thirdparty/flatcc/include/flatcc/flatcc_verifier.h
index eb19b64b..8abf9ccd 100644
--- a/thirdparty/flatcc/include/flatcc/flatcc_verifier.h
+++ b/thirdparty/flatcc/include/flatcc/flatcc_verifier.h
@@ -16,7 +16,7 @@ extern "C" {
  * The user may do so subsequently. The reason is in part because
  * the information is not readily avaible without generated reader code,
  * in part because the buffer might use a different, but valid,
- * identifier and the user has no chance of specifiying this in the
+ * identifier and the user has no chance of specifying this in the
  * verifier code. The root verifier also doesn't assume a specific id
  * but accepts a user supplied input which may be null.
  *
@@ -209,7 +209,7 @@ int flatcc_verify_typed_buffer_header(const void *buf, 
size_t bufsiz, flatbuffer
  */
 int flatcc_verify_buffer_header_with_size(const void *buf, size_t *bufsiz, 
const char *fid);
 
-int flatcc_verify_typed_buffer_header_with_size(const void *buf, size_t 
*bufsiz, flatbuffers_thash_t type_hash);
+int flatcc_verify_typed_buffer_header_with_size(const void *buf, size_t 
*bufsiz, flatbuffers_thash_t thash);
 
 /*
  * The following functions are typically called by a generated table
diff --git a/thirdparty/flatcc/include/flatcc/portable/pstdint.h 
b/thirdparty/flatcc/include/flatcc/portable/pstdint.h
index d522fed1..3294baac 100644
--- a/thirdparty/flatcc/include/flatcc/portable/pstdint.h
+++ b/thirdparty/flatcc/include/flatcc/portable/pstdint.h
@@ -197,7 +197,7 @@
  *  do nothing else.  On the Mac OS X version of gcc this is _STDINT_H_.
  */
 
-#if ((defined(_MSC_VER) && _MSC_VER >= 1600) || (defined(__STDC__) && __STDC__ 
&& defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined 
(__WATCOMC__) && (defined (_STDINT_H_INCLUDED) || __WATCOMC__ >= 1250)) || 
(defined(__GNUC__) && (__GNUC__ > 3 || defined(_STDINT_H) || 
defined(_STDINT_H_) || defined (__UINT_FAST64_TYPE__)) )) && !defined 
(_PSTDINT_H_INCLUDED)
+#if ((defined(_MSC_VER) && _MSC_VER >= 1600) || (defined(__STDC__) && __STDC__ 
&& defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || (defined 
(__WATCOMC__) && (defined (_STDINT_H_INCLUDED) || __WATCOMC__ >= 1250)) || 
(defined(__GNUC__) && (__GNUC__ > 3 || defined(_STDINT_H) || 
defined(_STDINT_H_) || defined (__UINT_FAST64_TYPE__)) )) && !defined 
(_PSTDINT_H_INCLUDED) && !defined (NTDDI_VERSION)
 #include <stdint.h>
 #define _PSTDINT_H_INCLUDED
 # if defined(__GNUC__) && (defined(__x86_64__) || defined(__ppc64__)) && 
!(defined(__APPLE__) && defined(__MACH__))
diff --git a/thirdparty/flatcc/src/runtime/builder.c 
b/thirdparty/flatcc/src/runtime/builder.c
index 8d9f3020..2d36d63f 100644
--- a/thirdparty/flatcc/src/runtime/builder.c
+++ b/thirdparty/flatcc/src/runtime/builder.c
@@ -608,7 +608,10 @@ static int enter_frame(flatcc_builder_t *B, uint16_t align)
 
 static inline void exit_frame(flatcc_builder_t *B)
 {
-    memset(B->ds, 0, B->ds_offset);
+    /* Clear the ds stack (if any struct frames have been allocated). */
+    if (B->ds) {
+        memset(B->ds, 0, B->ds_offset);
+    }
     B->ds_offset = frame(ds_offset);
     B->ds_first = frame(ds_first);
     refresh_ds(B, frame(type_limit));
@@ -1127,7 +1130,7 @@ flatcc_builder_vt_ref_t 
flatcc_builder_create_vtable(flatcc_builder_t *B,
      * struct).
      *
      * The vt_ref is stored as the reference + 1 to avoid having 0 as a
-     * valid reference (which usally means error). It also idententifies
+     * valid reference (which usually means error). It also idententifies
      * vtable references as the only uneven references, and the only
      * references that can be used multiple times in the same buffer.
      *
diff --git a/thirdparty/flatcc/src/runtime/verifier.c 
b/thirdparty/flatcc/src/runtime/verifier.c
index 4e96a1e4..d92b2b2d 100644
--- a/thirdparty/flatcc/src/runtime/verifier.c
+++ b/thirdparty/flatcc/src/runtime/verifier.c
@@ -93,7 +93,7 @@ const char *flatcc_verify_error_string(int err)
 
 /*
  * Identify checks related to runtime conditions (buffer size and
- * alignment) as seperate from those related to buffer content.
+ * alignment) as separate from those related to buffer content.
  */
 #define verify_runtime(cond, reason) verify(cond, reason)
 


Reply via email to