From 8f8e2605219c0c649d8c4a17b907aa56d41dccc0 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 14 Jul 2021 21:49:35 +0300 Subject: [PATCH] Use last received message ID to adjust last_database_message_id, if there were no messages added. --- td/telegram/MessagesManager.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 5cec5c5c8..bea8ef8ba 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -22065,11 +22065,14 @@ void MessagesManager::on_get_history_from_database(DialogId dialog_id, MessageId } resolve_dependencies_force(td_, dependencies, "on_get_history_from_database"); - if (from_the_end && !last_added_message_id.is_valid() && d->first_database_message_id.is_valid() && - last_received_message_id <= d->first_database_message_id && !d->have_full_history) { - // failed to load from database a message from first_database_message_id to last_database_message_id; drop them - set_dialog_first_database_message_id(d, MessageId(), "on_get_history_from_database 8"); - set_dialog_last_database_message_id(d, MessageId(), "on_get_history_from_database 9"); + if (from_the_end && !last_added_message_id.is_valid() && d->first_database_message_id.is_valid() && !d->have_full_history) { + if (last_received_message_id <= d->first_database_message_id) { + // database definitely has no messages from first_database_message_id to last_database_message_id; drop them + set_dialog_first_database_message_id(d, MessageId(), "on_get_history_from_database 8"); + set_dialog_last_database_message_id(d, MessageId(), "on_get_history_from_database 9"); + } else { + set_dialog_last_database_message_id(d, last_received_message_id, "on_get_history_from_database 12"); + } } if (!added_new_message && !only_local && dialog_id.get_type() != DialogType::SecretChat) {