From 4b2e3619f7c255a0f45aa8f70236dfa8f66b4972 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 19 Sep 2018 19:59:23 +0300 Subject: [PATCH] Use fail_send_message directly if possible. GitOrigin-RevId: f537f3f2517a7775d5714e38b57a7ce11b2042f6 --- td/telegram/MessagesManager.cpp | 20 ++++++++++---------- td/telegram/MessagesManager.h | 2 ++ 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 2269e4c2..dfdec884 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -6957,8 +6957,7 @@ void MessagesManager::on_upload_media(FileId file_id, tl_object_ptr 0 ? status.code() : 500, status.message())); } else { - fail_send_message(full_message_id, status.code() > 0 ? status.code() : 500, - status.message().str()); // TODO CHECK that status has always a code + fail_send_message(full_message_id, std::move(status)); } } @@ -7105,8 +7103,7 @@ void MessagesManager::on_load_secret_thumbnail(FileId thumbnail_file_id, BufferS // secret chat was closed during load of the file LOG(INFO) << "Can't send a message to " << dialog_id << ": " << can_send_status.error(); - int64 random_id = begin_send_message(dialog_id, m); - on_send_message_fail(random_id, can_send_status.move_as_error()); + fail_send_message(full_message_id, can_send_status.move_as_error()); return; } @@ -7154,8 +7151,7 @@ void MessagesManager::on_upload_thumbnail(FileId thumbnail_file_id, // user has left the chat during upload of the thumbnail or lost his privileges LOG(INFO) << "Can't send a message to " << dialog_id << ": " << can_send_status.error(); - int64 random_id = begin_send_message(dialog_id, m); - on_send_message_fail(random_id, can_send_status.move_as_error()); + fail_send_message(full_message_id, can_send_status.move_as_error()); return; } @@ -20540,6 +20536,11 @@ void MessagesManager::fail_send_message(FullMessageId full_message_id, int error } } +void MessagesManager::fail_send_message(FullMessageId full_message_id, Status error) { + fail_send_message(full_message_id, error.code() > 0 ? error.code() : 500, + error.message().str()); // TODO CHECK that status has always a code +} + void MessagesManager::fail_edit_message_media(FullMessageId full_message_id, Status &&error) { auto dialog_id = full_message_id.get_dialog_id(); Dialog *d = get_dialog(dialog_id); @@ -26208,8 +26209,7 @@ MessagesManager::Message *MessagesManager::continue_send_message(DialogId dialog if (can_send_status.is_error()) { LOG(INFO) << "Can't resend a message to " << dialog_id << ": " << can_send_status.error(); - int64 random_id = begin_send_message(dialog_id, result_message); - on_send_message_fail(random_id, can_send_status.move_as_error()); + fail_send_message({dialog_id, result_message->message_id}, can_send_status.move_as_error()); return nullptr; } diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index 611b5e65..d77e08e2 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -2198,6 +2198,8 @@ class MessagesManager : public Actor { void fail_send_message(FullMessageId full_message_id, int error_code, const string &error_message); + void fail_send_message(FullMessageId full_message_id, Status error); + void fail_edit_message_media(FullMessageId full_message_id, Status &&error); void on_dialog_updated(DialogId dialog_id, const char *source);