From 83204d4b2db7b32e2ad664e74bc3d79072929af2 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 27 Jun 2024 12:53:33 +0300 Subject: [PATCH] Add only_valid parameter to UserId::get_user_ids. --- td/telegram/BusinessRecipients.cpp | 9 +++------ td/telegram/MessagesManager.cpp | 4 +--- td/telegram/UserId.h | 7 +++++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/td/telegram/BusinessRecipients.cpp b/td/telegram/BusinessRecipients.cpp index dabc85098..3d1be6d04 100644 --- a/td/telegram/BusinessRecipients.cpp +++ b/td/telegram/BusinessRecipients.cpp @@ -17,25 +17,22 @@ namespace td { BusinessRecipients::BusinessRecipients(telegram_api::object_ptr recipients) - : user_ids_(UserId::get_user_ids(recipients->users_)) + : user_ids_(UserId::get_user_ids(recipients->users_, true)) , existing_chats_(recipients->existing_chats_) , new_chats_(recipients->new_chats_) , contacts_(recipients->contacts_) , non_contacts_(recipients->non_contacts_) , exclude_selected_(recipients->exclude_selected_) { - td::remove_if(user_ids_, [](UserId user_id) { return !user_id.is_valid(); }); } BusinessRecipients::BusinessRecipients(telegram_api::object_ptr recipients) - : user_ids_(UserId::get_user_ids(recipients->users_)) - , excluded_user_ids_(UserId::get_user_ids(recipients->exclude_users_)) + : user_ids_(UserId::get_user_ids(recipients->users_, true)) + , excluded_user_ids_(UserId::get_user_ids(recipients->exclude_users_, true)) , existing_chats_(recipients->existing_chats_) , new_chats_(recipients->new_chats_) , contacts_(recipients->contacts_) , non_contacts_(recipients->non_contacts_) , exclude_selected_(recipients->exclude_selected_) { - td::remove_if(user_ids_, [](UserId user_id) { return !user_id.is_valid(); }); - td::remove_if(excluded_user_ids_, [](UserId user_id) { return !user_id.is_valid(); }); } BusinessRecipients::BusinessRecipients(td_api::object_ptr recipients, bool allow_excluded) { diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 70b80bbdf..702850369 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -30264,13 +30264,11 @@ void MessagesManager::on_update_dialog_pending_join_requests(DialogId dialog_id, return; } - set_dialog_pending_join_requests(d, pending_join_request_count, UserId::get_user_ids(pending_requesters)); + set_dialog_pending_join_requests(d, pending_join_request_count, UserId::get_user_ids(pending_requesters, true)); } void MessagesManager::fix_pending_join_requests(DialogId dialog_id, int32 &pending_join_request_count, vector &pending_join_request_user_ids) const { - td::remove_if(pending_join_request_user_ids, [](UserId user_id) { return !user_id.is_valid(); }); - bool need_drop_pending_join_requests = [&] { if (pending_join_request_count < 0) { return true; diff --git a/td/telegram/UserId.h b/td/telegram/UserId.h index 6302b0d35..8a5fa1db1 100644 --- a/td/telegram/UserId.h +++ b/td/telegram/UserId.h @@ -29,11 +29,14 @@ class UserId { template ::value>> UserId(T user_id) = delete; - static vector get_user_ids(const vector &input_user_ids) { + static vector get_user_ids(const vector &input_user_ids, bool only_valid = false) { vector user_ids; user_ids.reserve(input_user_ids.size()); for (auto &input_user_id : input_user_ids) { - user_ids.emplace_back(input_user_id); + UserId user_id(input_user_id); + if (!only_valid || user_id.is_valid()) { + user_ids.emplace_back(user_id); + } } return user_ids; }