From 5e524561061ba33843add2ad94beccf75fa203de Mon Sep 17 00:00:00 2001 From: Daniel Tabacaru Date: Thu, 2 Jun 2022 14:38:27 +0200 Subject: [PATCH 1/2] Fix MSVC runtime check failure --- src/realm/sync/changeset_encoder.cpp | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/realm/sync/changeset_encoder.cpp b/src/realm/sync/changeset_encoder.cpp index ed3d3f098fa..328b7dd0364 100644 --- a/src/realm/sync/changeset_encoder.cpp +++ b/src/realm/sync/changeset_encoder.cpp @@ -8,18 +8,19 @@ void ChangesetEncoder::operator()(const Instruction::AddTable& instr) { auto spec = mpark::get_if(&instr.type); const bool is_embedded = (spec == nullptr); - auto convert = util::overload{ - [&](const Instruction::AddTable::TopLevelTable& spec) { - if (spec.is_asymmetric) { - return Table::Type::TopLevelAsymmetric; - } - return Table::Type::TopLevel; - }, - [&](const Instruction::AddTable::EmbeddedTable&) { - return Table::Type::Embedded; - }, - }; - auto table_type_int = static_cast(mpark::visit(convert, instr.type)); + Table::Type table_type; + if (!is_embedded) { + if (spec->is_asymmetric) { + table_type = Table::Type::TopLevelAsymmetric; + } + else { + table_type = Table::Type::TopLevel; + } + } + else { + table_type = Table::Type::Embedded; + } + auto table_type_int = static_cast(table_type); append(Instruction::Type::AddTable, instr.table, table_type_int); if (!is_embedded) { append_value(spec->pk_field); From 3b15fdb29412d5860d03ed659175fa677e4aac67 Mon Sep 17 00:00:00 2001 From: Daniel Tabacaru Date: Thu, 2 Jun 2022 14:55:58 +0200 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d40b80d238..31fa85fea16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,7 @@ * None. ### Fixed -* ([#????](https://github.com/realm/realm-core/issues/????), since v?.?.?) -* None. +* Fixed a segfault in sync compiled by MSVC 2022. ([#5557](https://github.com/realm/realm-core/pull/5557), since 12.1.0) ### Breaking changes * None.