From 73d5b2dcbbd2170738a597578481b01ec1786713 Mon Sep 17 00:00:00 2001 From: levlam Date: Fri, 28 Jul 2023 13:50:02 +0300 Subject: [PATCH] Simplify calls to load_messages. --- td/telegram/MessagesManager.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 1b5e997f8..56a4c1005 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -21066,11 +21066,10 @@ tl_object_ptr MessagesManager::get_dialog_history(DialogId dia CHECK(offset == 0); preload_newer_messages(d, message_ids[0]); preload_older_messages(d, message_ids.back()); - } else if (message_ids.size() < static_cast(limit) && left_tries != 0 && - !(d->is_empty && d->have_full_history && left_tries < 3)) { + } else if (limit > 0 && left_tries != 0 && !(d->is_empty && d->have_full_history && left_tries < 3)) { // there can be more messages in the database or on the server, need to load them - send_closure_later(actor_id(this), &MessagesManager::load_messages, dialog_id, from_message_id, offset, - limit - static_cast(message_ids.size()), left_tries, only_local, std::move(promise)); + send_closure_later(actor_id(this), &MessagesManager::load_messages, dialog_id, from_message_id, offset, limit, + left_tries, only_local, std::move(promise)); return nullptr; } @@ -23382,9 +23381,6 @@ void MessagesManager::on_get_history_from_database(DialogId dialog_id, MessageId } if (!first_added_message_id.is_valid() && !only_local && dialog_id.get_type() != DialogType::SecretChat) { - if (from_the_end) { - from_message_id = MessageId(); - } load_messages_impl(d, from_message_id, offset, limit, 1, false, std::move(promise)); return; } @@ -23666,7 +23662,7 @@ void MessagesManager::load_messages_impl(const Dialog *d, MessageId from_message only_local = true; } bool from_database = (left_tries > 2 || only_local) && G()->use_message_database(); - if (from_message_id == MessageId()) { + if (from_message_id == MessageId() || from_message_id == MessageId::max()) { get_history_from_the_end_impl(d, from_database, only_local, std::move(promise), "load_messages_impl"); return; }