mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-24 19:16:09 +00:00
Make flatbuffer builder deterministic (#6993)
This commit is contained in:
@@ -922,7 +922,7 @@ class FlatBufferBuilder {
|
|||||||
/// where the vector is stored.
|
/// where the vector is stored.
|
||||||
template<typename T>
|
template<typename T>
|
||||||
Offset<Vector<const T *>> CreateVectorOfSortedStructs(T *v, size_t len) {
|
Offset<Vector<const T *>> CreateVectorOfSortedStructs(T *v, size_t len) {
|
||||||
std::sort(v, v + len, StructKeyComparator<T>());
|
std::stable_sort(v, v + len, StructKeyComparator<T>());
|
||||||
return CreateVectorOfStructs(v, len);
|
return CreateVectorOfStructs(v, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -941,7 +941,7 @@ class FlatBufferBuilder {
|
|||||||
extern T Pack(const S &);
|
extern T Pack(const S &);
|
||||||
auto structs = StartVectorOfStructs<T>(len);
|
auto structs = StartVectorOfStructs<T>(len);
|
||||||
for (size_t i = 0; i < len; i++) { structs[i] = Pack(v[i]); }
|
for (size_t i = 0; i < len; i++) { structs[i] = Pack(v[i]); }
|
||||||
std::sort(structs, structs + len, StructKeyComparator<T>());
|
std::stable_sort(structs, structs + len, StructKeyComparator<T>());
|
||||||
return EndVectorOfStructs<T>(len);
|
return EndVectorOfStructs<T>(len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -973,7 +973,7 @@ class FlatBufferBuilder {
|
|||||||
template<typename T>
|
template<typename T>
|
||||||
Offset<Vector<Offset<T>>> CreateVectorOfSortedTables(Offset<T> *v,
|
Offset<Vector<Offset<T>>> CreateVectorOfSortedTables(Offset<T> *v,
|
||||||
size_t len) {
|
size_t len) {
|
||||||
std::sort(v, v + len, TableKeyComparator<T>(buf_));
|
std::stable_sort(v, v + len, TableKeyComparator<T>(buf_));
|
||||||
return CreateVector(v, len);
|
return CreateVector(v, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user