From fb12e675833856cb369696853f543746fc892b24 Mon Sep 17 00:00:00 2001 From: "andrew (from workstation)" Date: Wed, 20 May 2020 18:29:35 +0200 Subject: [PATCH] dont update time on filemanager memory cleanup --- td/telegram/files/FileId.h | 4 ++++ td/telegram/files/FileManager.cpp | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/td/telegram/files/FileId.h b/td/telegram/files/FileId.h index fce3e99f..0fa46804 100644 --- a/td/telegram/files/FileId.h +++ b/td/telegram/files/FileId.h @@ -35,6 +35,10 @@ class FileId { return id > 0; } + int32 fast_get() const { + return id; + } + int32 get() { time = std::time(nullptr); return id; diff --git a/td/telegram/files/FileManager.cpp b/td/telegram/files/FileManager.cpp index f2ce863c..75802e9f 100644 --- a/td/telegram/files/FileManager.cpp +++ b/td/telegram/files/FileManager.cpp @@ -3489,7 +3489,7 @@ void FileManager::memory_cleanup() { if (time - node->main_file_id_.get_time() > 60 * 5 /* MAIN FILE TTL */) { for (auto &file_id : node->file_ids_) { /* DESTROY ASSOCIATED QUERIES */ - destroy_query(file_id.get()); + destroy_query(file_id.fast_get()); /* DESTROY ASSOCIATED NODE */ auto &ref_node_id = file_id_info_[file_id.get()].node_id_; @@ -3504,7 +3504,7 @@ void FileManager::memory_cleanup() { } /* DESTROY ASSOCIATED FILE */ - file_id_info_[file_id.get()] = FileIdInfo(); + file_id_info_[file_id.fast_get()] = FileIdInfo(); empty_file_ids_.push_back(file_id.get()); } @@ -3548,7 +3548,7 @@ void FileManager::memory_cleanup() { auto &node = file_nodes_[i]; if (node != nullptr) { - auto invalid = file_id_info_[node->main_file_id_.get()].node_id_ != ((int32) i); + auto invalid = file_id_info_[node->main_file_id_.fast_get()].node_id_ != ((int32) i); if (!invalid) { for (auto &file : node->file_ids_) { @@ -3561,9 +3561,9 @@ void FileManager::memory_cleanup() { if (invalid) { for (auto &file : node->file_ids_) { - destroy_query(file.get()); + destroy_query(file.fast_get()); context_->destroy_file_source(file); - file_id_info_[file.get()] = FileIdInfo(); + file_id_info_[file.fast_get()] = FileIdInfo(); empty_file_ids_.push_back(file.get()); }