diff --git a/td/telegram/files/FileManager.cpp b/td/telegram/files/FileManager.cpp index 67cadce8..134d29f5 100644 --- a/td/telegram/files/FileManager.cpp +++ b/td/telegram/files/FileManager.cpp @@ -3696,19 +3696,19 @@ void FileManager::hangup() { } void FileManager::memory_cleanup() { - empty_file_ids_.clear(); + if (file_id_info_.size() > 1000 && empty_file_ids_.size() < 200) { + empty_file_ids_.clear(); - if (file_id_info_.size() > 1000) { - for (unsigned int i = 1; i < file_id_info_.size() - 1000; i++) { - empty_file_ids_.push_back(i); - } - while (!queries_container_.empty()) { auto ids = queries_container_.ids(); for (auto id : ids) { on_error(id, Status::Error(500, "Request aborted")); } } + + for (long unsigned int i = file_id_info_.size(); i > 0; i--) { + empty_file_ids_.push_back((int32) i); + } } }