From 92fbabbe1a5a0ab9f5270bcd167011320e8febda Mon Sep 17 00:00:00 2001 From: levlam Date: Mon, 22 Oct 2018 18:19:39 +0300 Subject: [PATCH] Fix call to get_channel_difference. GitOrigin-RevId: 4594b60bbdceacded2f540ccc6a3c0d9fc5c16c6 --- td/telegram/MessagesManager.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index c2e84ef5..82ebd779 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -21377,11 +21377,12 @@ void MessagesManager::update_dialog_pos(Dialog *d, bool remove_from_dialog_list, bool MessagesManager::set_dialog_order(Dialog *d, int64 new_order, bool need_send_update_chat_order) { CHECK(d != nullptr); - DialogDate old_date(d->order, d->dialog_id); - DialogDate new_date(new_order, d->dialog_id); + DialogId dialog_id = d->dialog_id; + DialogDate old_date(d->order, dialog_id); + DialogDate new_date(new_order, dialog_id); std::set *ordered_dialogs_set = nullptr; - switch (d->dialog_id.get_type()) { + switch (dialog_id.get_type()) { case DialogType::User: case DialogType::Chat: case DialogType::Channel: @@ -21401,7 +21402,7 @@ bool MessagesManager::set_dialog_order(Dialog *d, int64 new_order, bool need_sen LOG(INFO) << "Dialog order is not changed: " << new_order; return false; } - LOG(INFO) << "Update order of " << d->dialog_id << " from " << d->order << " to " << new_order; + LOG(INFO) << "Update order of " << dialog_id << " from " << d->order << " to " << new_order; bool need_update = false; if (old_date <= last_dialog_date_) { @@ -21411,7 +21412,7 @@ bool MessagesManager::set_dialog_order(Dialog *d, int64 new_order, bool need_sen need_update = true; } bool is_new = ordered_dialogs_set->erase(old_date) == 0; - LOG_IF(ERROR, is_new && d->order != DEFAULT_ORDER) << d->dialog_id << " not found in the chat list"; + LOG_IF(ERROR, is_new && d->order != DEFAULT_ORDER) << dialog_id << " not found in the chat list"; int64 updated_to = 0; if (new_date <= last_dialog_date_) { @@ -21441,7 +21442,7 @@ bool MessagesManager::set_dialog_order(Dialog *d, int64 new_order, bool need_sen if (is_dialog_muted(d)) { unread_message_muted_count_ += unread_count; } - send_update_unread_message_count(d->dialog_id, true, source); + send_update_unread_message_count(dialog_id, true, source); } if ((unread_count != 0 || d->is_marked_as_unread) && is_dialog_unread_count_inited_) { int delta = 1; @@ -21461,12 +21462,12 @@ bool MessagesManager::set_dialog_order(Dialog *d, int64 new_order, bool need_sen unread_dialog_muted_marked_count_ += delta; } } - send_update_unread_chat_count(d->dialog_id, true, source); + send_update_unread_chat_count(dialog_id, true, source); } - if (d->dialog_id.get_type() == DialogType::Channel && has_unread_counter) { + if (dialog_id.get_type() == DialogType::Channel && has_unread_counter) { repair_channel_server_unread_count(d); - get_channel_difference(d->dialog_id, d->pts, true, source); + channel_get_difference_retry_timeout_.add_timeout_in(dialog_id.get(), 0.001); } } @@ -21482,7 +21483,7 @@ bool MessagesManager::set_dialog_order(Dialog *d, int64 new_order, bool need_sen need_update = false; } if (need_update && need_send_update_chat_order) { - send_closure(G()->td(), &Td::send_update, make_tl_object(d->dialog_id.get(), updated_to)); + send_closure(G()->td(), &Td::send_update, make_tl_object(dialog_id.get(), updated_to)); } return true; }