From b88da80fc2ef89ce4aa1afae4decddf0bfd2bd82 Mon Sep 17 00:00:00 2001 From: levlam Date: Wed, 19 Apr 2023 12:11:22 +0300 Subject: [PATCH] Fix sticker comparison in remove_recent_sticker. --- td/telegram/StickersManager.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/td/telegram/StickersManager.cpp b/td/telegram/StickersManager.cpp index 61d06c651..7b5603a69 100644 --- a/td/telegram/StickersManager.cpp +++ b/td/telegram/StickersManager.cpp @@ -9263,7 +9263,10 @@ void StickersManager::remove_recent_sticker(bool is_attached, const tl_object_pt td_->file_manager_->get_input_file_id(FileType::Sticker, input_file, DialogId(), false, false)); vector &sticker_ids = recent_sticker_ids_[is_attached]; - if (!td::remove(sticker_ids, file_id)) { + auto is_equal = [sticker_id = file_id](FileId file_id) { + return file_id == sticker_id || (file_id.get_remote() == sticker_id.get_remote() && sticker_id.get_remote() != 0); + }; + if (!td::remove_if(sticker_ids, is_equal)) { return promise.set_value(Unit()); }