From b5bc567eb808804b665ee7eb934a4dab9cd37a41 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 13 May 2022 12:26:26 +0400 Subject: [PATCH] Beta version 3.7.5: Fix MSVC x64 Release build. --- Telegram/SourceFiles/passport/passport_form_controller.cpp | 7 ++++++- .../SourceFiles/passport/passport_panel_controller.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/passport/passport_form_controller.cpp b/Telegram/SourceFiles/passport/passport_form_controller.cpp index 3c3b6b81e6..28fe296c77 100644 --- a/Telegram/SourceFiles/passport/passport_form_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_form_controller.cpp @@ -995,12 +995,17 @@ void FormController::recoverPassword() { .hasRecovery = _password.hasRecovery, .pendingResetDate = _password.pendingResetDate, }; + + // MSVC x64 (non-LTO) Release build fails with a linker error: + // - unresolved external variant::variant(variant const &) + // It looks like a MSVC bug and this works like a workaround. + const auto force = fields.mtp.newSecureSecretAlgo; + const auto box = _view->show(Box( &_controller->session().mtp(), &_controller->session(), pattern, fields)); - box->newPasswordSet( ) | rpl::start_with_next([=](const QByteArray &password) { if (password.isEmpty()) { diff --git a/Telegram/SourceFiles/passport/passport_panel_controller.cpp b/Telegram/SourceFiles/passport/passport_panel_controller.cpp index f5f2586557..d4b96b3c6f 100644 --- a/Telegram/SourceFiles/passport/passport_panel_controller.cpp +++ b/Telegram/SourceFiles/passport/passport_panel_controller.cpp @@ -690,6 +690,12 @@ void PanelController::setupPassword() { .hasRecovery = settings.hasRecovery, .pendingResetDate = settings.pendingResetDate, }; + + // MSVC x64 (non-LTO) Release build fails with a linker error: + // - unresolved external variant::variant(variant const &) + // It looks like a MSVC bug and this works like a workaround. + const auto force = fields.mtp.newSecureSecretAlgo; + auto box = show(Box(&_form->window()->session(), fields)); box->newPasswordSet( ) | rpl::start_with_next([=](const QByteArray &password) {