diff --git a/td/telegram/ChatId.h b/td/telegram/ChatId.h index 43b015c77..2a5deac05 100644 --- a/td/telegram/ChatId.h +++ b/td/telegram/ChatId.h @@ -20,9 +20,12 @@ class ChatId { int64 time_ = INT64_MAX; public: - ChatId() = default; + explicit ChatId() { + set_time(); + }; explicit ChatId(int32 chat_id) : id(chat_id) { + set_time(); } template ::value>> ChatId(T chat_id) = delete; diff --git a/td/telegram/ContactsManager.cpp b/td/telegram/ContactsManager.cpp index a14fffe8f..9558b9259 100644 --- a/td/telegram/ContactsManager.cpp +++ b/td/telegram/ContactsManager.cpp @@ -12387,6 +12387,7 @@ bool ContactsManager::get_user(UserId user_id, int left_tries, Promise &&p return false; } + user_id.set_time(); promise.set_value(Unit()); return true; } @@ -12397,6 +12398,7 @@ ContactsManager::User *ContactsManager::add_user(UserId user_id, const char *sou if (user_ptr == nullptr) { user_ptr = make_unique(); } + user_id.set_time(); return user_ptr.get(); } @@ -12405,6 +12407,7 @@ const ContactsManager::UserFull *ContactsManager::get_user_full(UserId user_id) if (p == users_full_.end()) { return nullptr; } else { + user_id.set_time(); return p->second.get(); } } @@ -12414,6 +12417,7 @@ ContactsManager::UserFull *ContactsManager::get_user_full(UserId user_id) { if (p == users_full_.end()) { return nullptr; } else { + user_id.set_time(); return p->second.get(); } } @@ -12425,6 +12429,7 @@ ContactsManager::UserFull *ContactsManager::add_user_full(UserId user_id) { user_full_ptr = make_unique(); user_full_ptr->can_pin_messages = (user_id == get_my_id()); } + user_id.set_time(); return user_full_ptr.get(); } @@ -12438,6 +12443,7 @@ void ContactsManager::reload_user(UserId user_id, Promise &&promise) { if (input_user == nullptr) { return promise.set_error(Status::Error(6, "User info not found")); } + user_id.set_time(); // there is no much reason to combine different requests into one request vector> users; @@ -12474,6 +12480,7 @@ bool ContactsManager::load_user_full(UserId user_id, bool force, Promise & } } + user_id.set_time(); promise.set_value(Unit()); return true; } @@ -12481,6 +12488,7 @@ bool ContactsManager::load_user_full(UserId user_id, bool force, Promise & void ContactsManager::reload_user_full(UserId user_id) { auto input_user = get_input_user(user_id); if (input_user != nullptr) { + user_id.set_time(); send_get_user_full_query(user_id, std::move(input_user), Auto(), "reload_user_full"); } } @@ -12502,6 +12510,7 @@ const ContactsManager::BotInfo *ContactsManager::get_bot_info(UserId user_id) co if (p == bot_infos_.end()) { return nullptr; } else { + user_id.set_time(); return p->second.get(); } } @@ -12511,6 +12520,7 @@ ContactsManager::BotInfo *ContactsManager::get_bot_info(UserId user_id) { if (p == bot_infos_.end()) { return nullptr; } else { + user_id.set_time(); return p->second.get(); } } @@ -12521,6 +12531,7 @@ ContactsManager::BotInfo *ContactsManager::add_bot_info(UserId user_id) { if (bot_info_ptr == nullptr) { bot_info_ptr = make_unique(); } + user_id.set_time(); return bot_info_ptr.get(); } diff --git a/td/telegram/UserId.h b/td/telegram/UserId.h index fd6a38066..9a6aafd65 100644 --- a/td/telegram/UserId.h +++ b/td/telegram/UserId.h @@ -20,9 +20,12 @@ class UserId { int64 time_ = INT64_MAX; public: - UserId() = default; + explicit UserId() { + set_time(); + } explicit UserId(int32 user_id) : id(user_id) { + set_time(); } template ::value>> UserId(T user_id) = delete; diff --git a/td/telegram/files/FileId.h b/td/telegram/files/FileId.h index 0225c0199..093efd091 100644 --- a/td/telegram/files/FileId.h +++ b/td/telegram/files/FileId.h @@ -21,9 +21,12 @@ class FileId { int64 time_ = INT64_MAX; public: - FileId() = default; + FileId() { + set_time(); + } FileId(int32 file_id, int32 remote_id) : id(file_id), remote_id(remote_id) { + set_time(); } template ::value>, typename = std::enable_if_t::value>>