Don't store all created message random IDs.

This commit is contained in:
levlam 2021-10-20 01:50:58 +03:00
parent 1915dec1ae
commit 64bc1ad7f0
2 changed files with 1 additions and 10 deletions

View File

@ -23158,8 +23158,7 @@ int64 MessagesManager::generate_new_random_id() {
int64 random_id; int64 random_id;
do { do {
random_id = Random::secure_int64(); random_id = Random::secure_int64();
} while (random_id == 0 || message_random_ids_.find(random_id) != message_random_ids_.end()); } while (random_id == 0 || being_sent_messages_.find(random_id) != being_sent_messages_.end());
message_random_ids_.insert(random_id);
return random_id; return random_id;
} }
@ -33468,10 +33467,6 @@ void MessagesManager::delete_message_from_database(Dialog *d, MessageId message_
} }
} }
if (m != nullptr && m->random_id != 0 && (m->is_outgoing || d->dialog_id == get_my_dialog_id())) {
message_random_ids_.erase(m->random_id);
}
if (m != nullptr && m->notification_id.is_valid()) { if (m != nullptr && m->notification_id.is_valid()) {
CHECK(!message_id.is_scheduled()); CHECK(!message_id.is_scheduled());
auto from_mentions = is_from_mention_notification_group(d, m); auto from_mentions = is_from_mention_notification_group(d, m);
@ -36845,8 +36840,6 @@ MessagesManager::Message *MessagesManager::continue_send_message(DialogId dialog
m->have_previous = true; m->have_previous = true;
m->have_next = true; m->have_next = true;
message_random_ids_.insert(m->random_id);
bool need_update = false; bool need_update = false;
bool need_update_dialog_pos = false; bool need_update_dialog_pos = false;
auto result_message = auto result_message =
@ -37070,7 +37063,6 @@ void MessagesManager::on_binlog_events(vector<BinlogEvent> &&events) {
m->have_previous = true; m->have_previous = true;
m->have_next = true; m->have_next = true;
message_random_ids_.insert(m->random_id);
forwarded_messages.push_back(add_message_to_dialog(to_dialog, std::move(m), true, &need_update, forwarded_messages.push_back(add_message_to_dialog(to_dialog, std::move(m), true, &need_update,
&need_update_dialog_pos, "forward message again")); &need_update_dialog_pos, "forward message again"));
send_update_new_message(to_dialog, forwarded_messages.back()); send_update_new_message(to_dialog, forwarded_messages.back());

View File

@ -3168,7 +3168,6 @@ class MessagesManager final : public Actor {
bool ttl_db_has_query_; bool ttl_db_has_query_;
Slot ttl_db_slot_; Slot ttl_db_slot_;
std::unordered_set<int64> message_random_ids_;
std::unordered_map<int64, FullMessageId> being_sent_messages_; // message_random_id -> message std::unordered_map<int64, FullMessageId> being_sent_messages_; // message_random_id -> message
std::unordered_map<FullMessageId, MessageId, FullMessageIdHash> std::unordered_map<FullMessageId, MessageId, FullMessageIdHash>