From 8b02fe6178427b96aea25396b53ea4ae8cadd7d8 Mon Sep 17 00:00:00 2001 From: Grzegorz Owsiany Date: Thu, 27 Nov 2025 03:12:24 +0100 Subject: [PATCH] [C++] Fix vtable deduplication for 64-bit buffers >2GB (#8591) Fixes #8590 --- include/flatbuffers/flatbuffer_builder.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index 8d221f6e6..5522de361 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -469,8 +469,8 @@ class FlatBufferBuilderImpl { if (dedup_vtables_) { for (auto it = buf_.scratch_data(); it < buf_.scratch_end(); it += sizeof(uoffset_t)) { - auto vt_offset_ptr = reinterpret_cast(it); - auto vt2 = reinterpret_cast(buf_.data_at(*vt_offset_ptr)); + auto vt_offset_ptr = reinterpret_cast(it); + auto vt2 = reinterpret_cast(buf_.data_at(*vt_offset_ptr + length_of_64_bit_region_)); auto vt2_size = ReadScalar(vt2); if (vt1_size != vt2_size || 0 != memcmp(vt2, vt1, vt1_size)) continue; vt_use = *vt_offset_ptr;