From 1e6a6c28afff50426e8c500feae41bfd502051f6 Mon Sep 17 00:00:00 2001 From: levlam Date: Thu, 6 Oct 2022 13:48:52 +0300 Subject: [PATCH] Synchronously load file in FileManager::add_file_source to avoid resaving it to the database. --- td/telegram/files/FileData.h | 2 +- td/telegram/files/FileDb.h | 4 ++-- td/telegram/files/FileManager.cpp | 8 ++++---- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/td/telegram/files/FileData.h b/td/telegram/files/FileData.h index f9eddf0bf..2acd8083d 100644 --- a/td/telegram/files/FileData.h +++ b/td/telegram/files/FileData.h @@ -53,7 +53,7 @@ inline StringBuilder &operator<<(StringBuilder &sb, const FileData &file_data) { if (file_data.remote_.type() == RemoteFileLocation::Type::Full) { sb << " remote " << file_data.remote_.full(); } - sb << format::as_array(file_data.file_source_ids_); + sb << ", sources = " << format::as_array(file_data.file_source_ids_); return sb << "]"; } diff --git a/td/telegram/files/FileDb.h b/td/telegram/files/FileDb.h index db6a26f5c..de1bf67cb 100644 --- a/td/telegram/files/FileDb.h +++ b/td/telegram/files/FileDb.h @@ -68,9 +68,9 @@ class FileDbInterface { Result get_file_data_sync(const LocationT &location) { auto res = get_file_data_sync_impl(as_key(location)); if (res.is_ok()) { - LOG(DEBUG) << "GET " << location << " " << res.ok(); + LOG(DEBUG) << "GET " << location << ": " << res.ok(); } else { - LOG(DEBUG) << "GET " << location << " " << res.error(); + LOG(DEBUG) << "GET " << location << ": " << res.error(); } return res; } diff --git a/td/telegram/files/FileManager.cpp b/td/telegram/files/FileManager.cpp index 36ca89864..f47c10de7 100644 --- a/td/telegram/files/FileManager.cpp +++ b/td/telegram/files/FileManager.cpp @@ -1742,7 +1742,7 @@ Result FileManager::merge(FileId x_file_id, FileId y_file_id, bool no_sy } void FileManager::add_file_source(FileId file_id, FileSourceId file_source_id) { - auto node = get_file_node(file_id); + auto node = get_sync_file_node(file_id); // synchronously load the file to preload known file sources if (!node) { return; } @@ -1755,7 +1755,7 @@ void FileManager::add_file_source(FileId file_id, FileSourceId file_source_id) { } void FileManager::remove_file_source(FileId file_id, FileSourceId file_source_id) { - auto node = get_file_node(file_id); + auto node = get_sync_file_node(file_id); // synchronously load the file to preload known file sources if (!node) { return; } @@ -1992,8 +1992,8 @@ void FileManager::load_from_pmc(FileNodePtr node, bool new_remote, bool new_loca generate = file_view.generate_location(); } - LOG(DEBUG) << "Load from pmc " << file_id << "/" << file_view.get_main_file_id() << ", new_remote = " << new_remote - << ", new_local = " << new_local << ", new_generate = " << new_generate; + LOG(DEBUG) << "Load from pmc file " << file_id << '/' << file_view.get_main_file_id() + << ", new_remote = " << new_remote << ", new_local = " << new_local << ", new_generate = " << new_generate; auto load = [&](auto location) { TRY_RESULT(file_data, file_db_->get_file_data_sync(location)); TRY_RESULT(new_file_id,