diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index a5455a3e2..8969da852 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -8080,8 +8080,7 @@ bool MessagesManager::process_channel_update(tl_object_ptr message_ids.push_back(MessageId(ServerMessageId(message))); } - auto dialog_id = DialogId(channel_id); - delete_dialog_messages(dialog_id, message_ids, true, false, "updateDeleteChannelMessages"); + delete_dialog_messages(DialogId(channel_id), message_ids, true, false, "updateDeleteChannelMessages"); break; } case telegram_api::updateEditChannelMessage::ID: { @@ -10793,13 +10792,18 @@ void MessagesManager::delete_dialog_messages(DialogId dialog_id, const vector &message_ids, bool from_updates, + bool skip_update_for_not_found_messages, const char *source) { vector deleted_message_ids; bool need_update_dialog_pos = false; for (auto message_id : message_ids) { CHECK(!message_id.is_scheduled()); if (from_updates) { - if (!message_id.is_valid() || (!message_id.is_server() && dialog_id.get_type() != DialogType::SecretChat)) { - LOG(ERROR) << "Tried to delete " << message_id << " in " << dialog_id << " from " << source; + if (!message_id.is_valid() || (!message_id.is_server() && d->dialog_id.get_type() != DialogType::SecretChat)) { + LOG(ERROR) << "Tried to delete " << message_id << " in " << d->dialog_id << " from " << source; continue; } } else { @@ -10819,7 +10823,7 @@ void MessagesManager::delete_dialog_messages(DialogId dialog_id, const vectordialog_id, std::move(deleted_message_ids), true, false); } void MessagesManager::update_dialog_pinned_messages_from_updates(DialogId dialog_id, @@ -14245,7 +14249,7 @@ void MessagesManager::finish_delete_secret_messages(DialogId dialog_id, std::vec LOG(INFO) << "Skip deletion of service " << message_id; } } - delete_dialog_messages(dialog_id, to_delete_message_ids, true, false, "finish_delete_secret_messages"); + delete_dialog_messages(d, to_delete_message_ids, true, false, "finish_delete_secret_messages"); } void MessagesManager::delete_secret_chat_history(SecretChatId secret_chat_id, bool remove_from_dialog_list, diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index db14783a1..67737ed07 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -1985,6 +1985,9 @@ class MessagesManager final : public Actor { void delete_dialog_messages(DialogId dialog_id, const vector &message_ids, bool from_updates, bool skip_update_for_not_found_messages, const char *source); + void delete_dialog_messages(Dialog *d, const vector &message_ids, bool from_updates, + bool skip_update_for_not_found_messages, const char *source); + void update_dialog_pinned_messages_from_updates(DialogId dialog_id, const vector &message_ids, bool is_pin);