From d7b75417fc21b981ba2a67c3ffca9e0796268b25 Mon Sep 17 00:00:00 2001 From: Danila Kutenin Date: Fri, 14 Jan 2022 23:37:27 +0000 Subject: [PATCH] Make flatbuffer builder deterministic (#6993) --- include/flatbuffers/flatbuffer_builder.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/flatbuffers/flatbuffer_builder.h b/include/flatbuffers/flatbuffer_builder.h index 8be4efbe9..5837cc6f7 100644 --- a/include/flatbuffers/flatbuffer_builder.h +++ b/include/flatbuffers/flatbuffer_builder.h @@ -922,7 +922,7 @@ class FlatBufferBuilder { /// where the vector is stored. template Offset> CreateVectorOfSortedStructs(T *v, size_t len) { - std::sort(v, v + len, StructKeyComparator()); + std::stable_sort(v, v + len, StructKeyComparator()); return CreateVectorOfStructs(v, len); } @@ -941,7 +941,7 @@ class FlatBufferBuilder { extern T Pack(const S &); auto structs = StartVectorOfStructs(len); for (size_t i = 0; i < len; i++) { structs[i] = Pack(v[i]); } - std::sort(structs, structs + len, StructKeyComparator()); + std::stable_sort(structs, structs + len, StructKeyComparator()); return EndVectorOfStructs(len); } @@ -973,7 +973,7 @@ class FlatBufferBuilder { template Offset>> CreateVectorOfSortedTables(Offset *v, size_t len) { - std::sort(v, v + len, TableKeyComparator(buf_)); + std::stable_sort(v, v + len, TableKeyComparator(buf_)); return CreateVector(v, len); }