| 2803 | } |
| 2804 | |
| 2805 | void Session::processMessages( |
| 2806 | const QVector<MTPMessage> &data, |
| 2807 | NewMessageType type) { |
| 2808 | auto indices = base::flat_map<uint64, int>(); |
| 2809 | for (int i = 0, l = data.size(); i != l; ++i) { |
| 2810 | const auto &message = data[i]; |
| 2811 | if (message.type() == mtpc_message) { |
| 2812 | const auto &data = message.c_message(); |
| 2813 | // new message, index my forwarded messages to links overview |
| 2814 | if ((type == NewMessageType::Unread) |
| 2815 | && updateExistingMessage(data)) { |
| 2816 | continue; |
| 2817 | } |
| 2818 | } |
| 2819 | const auto id = IdFromMessage(message); // Only 32 bit values here. |
| 2820 | indices.emplace((uint64(uint32(id.bare)) << 32) | uint64(i), i); |
| 2821 | } |
| 2822 | for (const auto &[position, index] : indices) { |
| 2823 | addNewMessage( |
| 2824 | data[index], |
| 2825 | MessageFlags(), |
| 2826 | type); |
| 2827 | } |
| 2828 | } |
| 2829 | |
| 2830 | void Session::processMessages( |
| 2831 | const MTPVector<MTPMessage> &data, |
no test coverage detected