Optimize checked insert to std::map.
This commit is contained in:
parent
382bd2a066
commit
8b92e8f978
|
@ -1785,11 +1785,12 @@ void ConfigManager::process_app_config(tl_object_ptr<telegram_api::JSONValue> &c
|
|||
if (!dice_emojis.empty()) {
|
||||
vector<string> dice_success_values(dice_emojis.size());
|
||||
for (auto &it : dice_emoji_success_value) {
|
||||
if (dice_emoji_index.find(it.first) == dice_emoji_index.end()) {
|
||||
auto dice_emoji_it = dice_emoji_index.find(it.first);
|
||||
if (dice_emoji_it == dice_emoji_index.end()) {
|
||||
LOG(ERROR) << "Can't find emoji " << it.first;
|
||||
continue;
|
||||
}
|
||||
dice_success_values[dice_emoji_index[it.first]] = it.second;
|
||||
dice_success_values[dice_emoji_it->second] = it.second;
|
||||
}
|
||||
shared_config.set_option_string("dice_success_values", implode(dice_success_values, ','));
|
||||
shared_config.set_option_string("dice_emojis", implode(dice_emojis, '\x01'));
|
||||
|
|
|
@ -6163,9 +6163,11 @@ void ContactsManager::send_update_profile_photo_query(FileId file_id, int64 old_
|
|||
void ContactsManager::upload_profile_photo(FileId file_id, bool is_animation, double main_frame_timestamp,
|
||||
Promise<Unit> &&promise, int reupload_count, vector<int> bad_parts) {
|
||||
CHECK(file_id.is_valid());
|
||||
CHECK(uploaded_profile_photos_.find(file_id) == uploaded_profile_photos_.end());
|
||||
uploaded_profile_photos_.emplace(
|
||||
file_id, UploadedProfilePhoto{main_frame_timestamp, is_animation, reupload_count, std::move(promise)});
|
||||
bool is_inserted = uploaded_profile_photos_
|
||||
.emplace(file_id, UploadedProfilePhoto{main_frame_timestamp, is_animation, reupload_count,
|
||||
std::move(promise)})
|
||||
.second;
|
||||
CHECK(is_inserted);
|
||||
LOG(INFO) << "Ask to upload " << (is_animation ? "animated" : "static") << " profile photo " << file_id
|
||||
<< " with bad parts " << bad_parts;
|
||||
// TODO use force_reupload if reupload_count >= 1, replace reupload_count with is_reupload
|
||||
|
|
|
@ -9021,8 +9021,11 @@ void MessagesManager::on_upload_media(FileId file_id, tl_object_ptr<telegram_api
|
|||
if (input_file && thumbnail_file_id.is_valid()) {
|
||||
// TODO: download thumbnail if needed (like in secret chats)
|
||||
LOG(INFO) << "Ask to upload thumbnail " << thumbnail_file_id;
|
||||
CHECK(being_uploaded_thumbnails_.find(thumbnail_file_id) == being_uploaded_thumbnails_.end());
|
||||
being_uploaded_thumbnails_[thumbnail_file_id] = {full_message_id, file_id, std::move(input_file)};
|
||||
bool is_inserted =
|
||||
being_uploaded_thumbnails_
|
||||
.emplace(thumbnail_file_id, UploadedThumbnailInfo{full_message_id, file_id, std::move(input_file)})
|
||||
.second;
|
||||
CHECK(is_inserted);
|
||||
td_->file_manager_->upload(thumbnail_file_id, upload_thumbnail_callback_, 32, m->message_id.get());
|
||||
} else {
|
||||
do_send_media(dialog_id, m, file_id, thumbnail_file_id, std::move(input_file), nullptr);
|
||||
|
@ -9031,9 +9034,11 @@ void MessagesManager::on_upload_media(FileId file_id, tl_object_ptr<telegram_api
|
|||
case DialogType::SecretChat:
|
||||
if (thumbnail_file_id.is_valid()) {
|
||||
LOG(INFO) << "Ask to load thumbnail " << thumbnail_file_id;
|
||||
CHECK(being_loaded_secret_thumbnails_.find(thumbnail_file_id) == being_loaded_secret_thumbnails_.end());
|
||||
being_loaded_secret_thumbnails_[thumbnail_file_id] = {full_message_id, file_id,
|
||||
std::move(input_encrypted_file)};
|
||||
bool is_inserted = being_loaded_secret_thumbnails_
|
||||
.emplace(thumbnail_file_id, UploadedSecretThumbnailInfo{full_message_id, file_id,
|
||||
std::move(input_encrypted_file)})
|
||||
.second;
|
||||
CHECK(is_inserted);
|
||||
|
||||
load_secret_thumbnail(thumbnail_file_id);
|
||||
} else {
|
||||
|
@ -24669,9 +24674,10 @@ MessagesManager::Message *MessagesManager::get_message_to_send(
|
|||
|
||||
int64 MessagesManager::begin_send_message(DialogId dialog_id, const Message *m) {
|
||||
LOG(INFO) << "Begin to send " << FullMessageId(dialog_id, m->message_id) << " with random_id = " << m->random_id;
|
||||
CHECK(m->random_id != 0 && being_sent_messages_.find(m->random_id) == being_sent_messages_.end());
|
||||
CHECK(m->random_id != 0);
|
||||
CHECK(m->message_id.is_yet_unsent());
|
||||
being_sent_messages_[m->random_id] = FullMessageId(dialog_id, m->message_id);
|
||||
bool is_inserted = being_sent_messages_.emplace(m->random_id, FullMessageId(dialog_id, m->message_id)).second;
|
||||
CHECK(is_inserted);
|
||||
return m->random_id;
|
||||
}
|
||||
|
||||
|
@ -25439,8 +25445,11 @@ void MessagesManager::do_send_message(DialogId dialog_id, const Message *m, vect
|
|||
LOG(INFO) << "Ask to upload encrypted file " << file_id;
|
||||
CHECK(file_view.is_encrypted_secret());
|
||||
CHECK(file_id.is_valid());
|
||||
CHECK(being_uploaded_files_.find(file_id) == being_uploaded_files_.end());
|
||||
being_uploaded_files_[file_id] = {FullMessageId(dialog_id, m->message_id), thumbnail_file_id};
|
||||
bool is_inserted =
|
||||
being_uploaded_files_
|
||||
.emplace(file_id, std::make_pair(FullMessageId(dialog_id, m->message_id), thumbnail_file_id))
|
||||
.second;
|
||||
CHECK(is_inserted);
|
||||
// need to call resume_upload synchronously to make upload process consistent with being_uploaded_files_
|
||||
td_->file_manager_->resume_upload(file_id, std::move(bad_parts), upload_media_callback_, 1, m->message_id.get());
|
||||
} else {
|
||||
|
@ -25459,8 +25468,11 @@ void MessagesManager::do_send_message(DialogId dialog_id, const Message *m, vect
|
|||
|
||||
LOG(INFO) << "Ask to upload file " << file_id << " with bad parts " << bad_parts;
|
||||
CHECK(file_id.is_valid());
|
||||
CHECK(being_uploaded_files_.find(file_id) == being_uploaded_files_.end());
|
||||
being_uploaded_files_[file_id] = {FullMessageId(dialog_id, m->message_id), thumbnail_file_id};
|
||||
bool is_inserted =
|
||||
being_uploaded_files_
|
||||
.emplace(file_id, std::make_pair(FullMessageId(dialog_id, m->message_id), thumbnail_file_id))
|
||||
.second;
|
||||
CHECK(is_inserted);
|
||||
// need to call resume_upload synchronously to make upload process consistent with being_uploaded_files_
|
||||
td_->file_manager_->resume_upload(file_id, std::move(bad_parts), upload_media_callback_, 1, m->message_id.get());
|
||||
} else {
|
||||
|
@ -28555,10 +28567,12 @@ void MessagesManager::upload_imported_messages(DialogId dialog_id, FileId file_i
|
|||
bool is_reupload, Promise<Unit> &&promise, vector<int> bad_parts) {
|
||||
CHECK(file_id.is_valid());
|
||||
LOG(INFO) << "Ask to upload imported messages file " << file_id;
|
||||
CHECK(being_uploaded_imported_messages_.find(file_id) == being_uploaded_imported_messages_.end());
|
||||
being_uploaded_imported_messages_.emplace(
|
||||
file_id, td::make_unique<UploadedImportedMessagesInfo>(dialog_id, std::move(attached_file_ids), is_reupload,
|
||||
std::move(promise)));
|
||||
bool is_inserted =
|
||||
being_uploaded_imported_messages_
|
||||
.emplace(file_id, td::make_unique<UploadedImportedMessagesInfo>(dialog_id, std::move(attached_file_ids),
|
||||
is_reupload, std::move(promise)))
|
||||
.second;
|
||||
CHECK(is_inserted);
|
||||
// TODO use force_reupload if is_reupload
|
||||
td_->file_manager_->resume_upload(file_id, std::move(bad_parts), upload_imported_messages_callback_, 1, 0, false,
|
||||
true);
|
||||
|
@ -33008,9 +33022,11 @@ void MessagesManager::upload_dialog_photo(DialogId dialog_id, FileId file_id, bo
|
|||
vector<int> bad_parts) {
|
||||
CHECK(file_id.is_valid());
|
||||
LOG(INFO) << "Ask to upload chat photo " << file_id;
|
||||
CHECK(being_uploaded_dialog_photos_.find(file_id) == being_uploaded_dialog_photos_.end());
|
||||
being_uploaded_dialog_photos_.emplace(
|
||||
file_id, UploadedDialogPhotoInfo{dialog_id, main_frame_timestamp, is_animation, is_reupload, std::move(promise)});
|
||||
bool is_inserted = being_uploaded_dialog_photos_
|
||||
.emplace(file_id, UploadedDialogPhotoInfo{dialog_id, main_frame_timestamp, is_animation,
|
||||
is_reupload, std::move(promise)})
|
||||
.second;
|
||||
CHECK(is_inserted);
|
||||
// TODO use force_reupload if is_reupload
|
||||
td_->file_manager_->resume_upload(file_id, std::move(bad_parts), upload_dialog_photo_callback_, 32, 0);
|
||||
}
|
||||
|
|
|
@ -762,8 +762,8 @@ void WebPagesManager::on_get_web_page_preview_success(int64 request_id, const st
|
|||
Promise<Unit> &&promise) {
|
||||
CHECK(web_page_id == WebPageId() || have_web_page(web_page_id));
|
||||
|
||||
CHECK(got_web_page_previews_.find(request_id) == got_web_page_previews_.end());
|
||||
got_web_page_previews_[request_id] = web_page_id;
|
||||
bool is_inserted = got_web_page_previews_.emplace(request_id, web_page_id).second;
|
||||
CHECK(is_inserted);
|
||||
|
||||
if (web_page_id.is_valid() && !url.empty()) {
|
||||
on_get_web_page_by_url(url, web_page_id, true);
|
||||
|
|
Loading…
Reference in New Issue
Block a user