Use ConstIterator to find the last message.
This commit is contained in:
parent
494a25c19a
commit
4fe8137244
@ -20464,14 +20464,10 @@ void MessagesManager::open_dialog(Dialog *d) {
|
|||||||
d->was_opened = true;
|
d->was_opened = true;
|
||||||
|
|
||||||
auto min_message_id = MessageId(ServerMessageId(1));
|
auto min_message_id = MessageId(ServerMessageId(1));
|
||||||
if (d->last_message_id == MessageId() && d->last_read_outbox_message_id < min_message_id &&
|
if (d->last_message_id == MessageId() && d->last_read_outbox_message_id < min_message_id) {
|
||||||
d->ordered_messages.messages_ != nullptr && d->ordered_messages.messages_->message_id < min_message_id) {
|
auto it = d->ordered_messages.get_const_iterator(MessageId::max());
|
||||||
OrderedMessage *ordered_message = d->ordered_messages.messages_.get();
|
if (*it != nullptr && (*it)->message_id < min_message_id) {
|
||||||
while (ordered_message->right != nullptr) {
|
read_history_inbox(dialog_id, (*it)->message_id, -1, "open_dialog");
|
||||||
ordered_message = ordered_message->right.get();
|
|
||||||
}
|
|
||||||
if (ordered_message->message_id < min_message_id) {
|
|
||||||
read_history_inbox(dialog_id, ordered_message->message_id, -1, "open_dialog");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user