From 96d1fe336a06225ccb36dc9dcf00aca15b5e334a Mon Sep 17 00:00:00 2001 From: John Preston Date: Sun, 2 Jul 2017 22:23:41 +0300 Subject: [PATCH] Fix assertion violation when editing an admin. There is a possibility that an EditAdminBox will be shown for someone who can't add admins right now (in case server says he can edit one). In that case assertion about the admins checkbox is false and we fix that. Currently server sometimes does return this flag by mistake. --- Telegram/SourceFiles/boxes/edit_participant_box.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/boxes/edit_participant_box.cpp b/Telegram/SourceFiles/boxes/edit_participant_box.cpp index 77a2752789..402450f45e 100644 --- a/Telegram/SourceFiles/boxes/edit_participant_box.cpp +++ b/Telegram/SourceFiles/boxes/edit_participant_box.cpp @@ -216,13 +216,15 @@ void EditAdminBox::prepare() { addCheckbox(Flag::f_add_admins, lang(lng_rights_add_admins)); } - _aboutAddAdmins = addControl(object_ptr(this, st::boxLabel)); auto addAdmins = _checkboxes.find(Flag::f_add_admins); - t_assert(addAdmins != _checkboxes.end()); - connect(addAdmins->second, &Ui::Checkbox::changed, this, [this] { + if (addAdmins != _checkboxes.end()) { + _aboutAddAdmins = addControl(object_ptr(this, st::boxLabel)); + t_assert(addAdmins != _checkboxes.end()); + connect(addAdmins->second, &Ui::Checkbox::changed, this, [this] { + refreshAboutAddAdminsText(); + }); refreshAboutAddAdminsText(); - }); - refreshAboutAddAdminsText(); + } addButton(langFactory(lng_settings_save), [this] { if (!_saveCallback) {