From 48f623f1325646897f817a3fdf81b7cabbdfd291 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 16 Sep 2021 17:28:33 +0300 Subject: [PATCH] Simpler and faster have_message_force. --- td/telegram/Global.cpp | 4 ++-- td/telegram/MessagesManager.cpp | 14 ++++++++------ td/telegram/MessagesManager.h | 2 ++ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/td/telegram/Global.cpp b/td/telegram/Global.cpp index d83f275a4..b10aa0aa6 100644 --- a/td/telegram/Global.cpp +++ b/td/telegram/Global.cpp @@ -137,8 +137,8 @@ Status Global::init(const TdParameters ¶meters, ActorId td, unique_ptr(server_time); } diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 48164a90e..40756479c 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -16690,6 +16690,10 @@ bool MessagesManager::have_message_force(FullMessageId full_message_id, const ch return get_message_force(full_message_id, source) != nullptr; } +bool MessagesManager::have_message_force(Dialog *d, MessageId message_id, const char *source) { + return get_message_force(d, message_id, source) != nullptr; +} + MessagesManager::Message *MessagesManager::get_message(FullMessageId full_message_id) { Dialog *d = get_dialog(full_message_id.get_dialog_id()); if (d == nullptr) { @@ -27989,7 +27993,7 @@ bool MessagesManager::add_new_message_notification(Dialog *d, Message *m, bool f if (is_pinned) { auto message_id = get_message_content_pinned_message_id(m->content.get()); if (message_id.is_valid() && - !have_message_force({d->dialog_id, message_id}, + !have_message_force(d, message_id, force ? "add_new_message_notification force" : "add_new_message_notification not force")) { missing_pinned_message_id = message_id; } @@ -32340,20 +32344,18 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq if (*need_update || (!d->last_new_message_id.is_valid() && !message_id.is_yet_unsent() && from_update)) { auto pinned_message_id = get_message_content_pinned_message_id(message->content.get()); if (pinned_message_id.is_valid() && pinned_message_id < message_id && - have_message_force({dialog_id, pinned_message_id}, "preload pinned message")) { + have_message_force(d, pinned_message_id, "preload pinned message")) { LOG(INFO) << "Preloaded pinned " << pinned_message_id << " from database"; } if (d->pinned_message_notification_message_id.is_valid() && d->pinned_message_notification_message_id != message_id && - have_message_force({dialog_id, d->pinned_message_notification_message_id}, - "preload previously pinned message")) { + have_message_force(d, d->pinned_message_notification_message_id, "preload previously pinned message")) { LOG(INFO) << "Preloaded previously pinned " << d->pinned_message_notification_message_id << " from database"; } } if (from_update && message->top_thread_message_id.is_valid() && message->top_thread_message_id != message_id && - message_id.is_server() && - have_message_force({dialog_id, message->top_thread_message_id}, "preload top reply message")) { + message_id.is_server() && have_message_force(d, message->top_thread_message_id, "preload top reply message")) { LOG(INFO) << "Preloaded top thread " << message->top_thread_message_id << " from database"; Message *top_m = get_message(d, message->top_thread_message_id); diff --git a/td/telegram/MessagesManager.h b/td/telegram/MessagesManager.h index 2a9d0341d..53e637592 100644 --- a/td/telegram/MessagesManager.h +++ b/td/telegram/MessagesManager.h @@ -2639,6 +2639,8 @@ class MessagesManager final : public Actor { Message *get_message(FullMessageId full_message_id); const Message *get_message(FullMessageId full_message_id) const; + bool have_message_force(Dialog *d, MessageId message_id, const char *source); + Message *get_message_force(Dialog *d, MessageId message_id, const char *source); Message *get_message_force(FullMessageId full_message_id, const char *source);