From e3dc4ae0889355037c2a950ca1deabf97cd76132 Mon Sep 17 00:00:00 2001 From: John Preston Date: Sat, 16 Apr 2022 20:58:13 +0400 Subject: [PATCH] Version 3.7: Fix a crash in some langpacks. --- Telegram/SourceFiles/boxes/reactions_settings_box.cpp | 1 + Telegram/SourceFiles/data/data_peer.cpp | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/boxes/reactions_settings_box.cpp b/Telegram/SourceFiles/boxes/reactions_settings_box.cpp index a03d2dbdc..19cbd9064 100644 --- a/Telegram/SourceFiles/boxes/reactions_settings_box.cpp +++ b/Telegram/SourceFiles/boxes/reactions_settings_box.cpp @@ -43,6 +43,7 @@ constexpr auto kVisibleButtonsCount = 7; PeerId GenerateUser(not_null history, const QString &name) { Expects(history->peer->isUser()); + const auto peerId = Data::FakePeerIdForJustName(name); history->owner().processUser(MTP_user( MTP_flags(MTPDuser::Flag::f_first_name | MTPDuser::Flag::f_min), diff --git a/Telegram/SourceFiles/data/data_peer.cpp b/Telegram/SourceFiles/data/data_peer.cpp index ce9bd3e35..ac7ec6518 100644 --- a/Telegram/SourceFiles/data/data_peer.cpp +++ b/Telegram/SourceFiles/data/data_peer.cpp @@ -81,9 +81,11 @@ style::color PeerUserpicColor(PeerId peerId) { } PeerId FakePeerIdForJustName(const QString &name) { - return peerFromUser(name.isEmpty() + constexpr auto kShift = (0xFEULL << 32); + const auto base = name.isEmpty() ? 777 - : base::crc32(name.constData(), name.size() * sizeof(QChar))); + : base::crc32(name.constData(), name.size() * sizeof(QChar)); + return peerFromUser(kShift + std::abs(base)); } bool UpdateBotCommands(