Improve get_next_message_id.
GitOrigin-RevId: af978d83a85415439a6168964e7f05335c16b76d
This commit is contained in:
parent
b97570b817
commit
72d2235f6e
@ -20430,9 +20430,10 @@ void MessagesManager::on_send_message_fail(int64 random_id, Status error) {
|
|||||||
|
|
||||||
MessageId MessagesManager::get_next_message_id(Dialog *d, int32 type) {
|
MessageId MessagesManager::get_next_message_id(Dialog *d, int32 type) {
|
||||||
CHECK(d != nullptr);
|
CHECK(d != nullptr);
|
||||||
int64 last = std::max({d->last_message_id.get(), d->last_new_message_id.get(), d->last_database_message_id.get(),
|
int64 last =
|
||||||
d->last_assigned_message_id.get(), d->last_clear_history_message_id.get(),
|
std::max({d->last_message_id.get(), d->last_new_message_id.get(), d->last_database_message_id.get(),
|
||||||
d->deleted_last_message_id.get(), d->max_unavailable_message_id.get()});
|
d->last_assigned_message_id.get(), d->last_clear_history_message_id.get(),
|
||||||
|
d->deleted_last_message_id.get(), d->max_unavailable_message_id.get(), d->max_added_message_id.get()});
|
||||||
if (last < d->last_read_inbox_message_id.get() &&
|
if (last < d->last_read_inbox_message_id.get() &&
|
||||||
d->last_read_inbox_message_id.get() < d->last_new_message_id.get() + MessageId::FULL_TYPE_MASK) {
|
d->last_read_inbox_message_id.get() < d->last_new_message_id.get() + MessageId::FULL_TYPE_MASK) {
|
||||||
last = d->last_read_inbox_message_id.get();
|
last = d->last_read_inbox_message_id.get();
|
||||||
@ -23381,6 +23382,10 @@ MessagesManager::Message *MessagesManager::add_message_to_dialog(Dialog *d, uniq
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (message->message_id.get() > d->max_added_message_id.get()) {
|
||||||
|
d->max_added_message_id = message->message_id;
|
||||||
|
}
|
||||||
|
|
||||||
if (d->have_full_history && !message->from_database && !from_update && !message_id.is_local() &&
|
if (d->have_full_history && !message->from_database && !from_update && !message_id.is_local() &&
|
||||||
!message_id.is_yet_unsent()) {
|
!message_id.is_yet_unsent()) {
|
||||||
LOG(ERROR) << "Have full history in " << dialog_id << ", but receive unknown " << message_id
|
LOG(ERROR) << "Have full history in " << dialog_id << ", but receive unknown " << message_id
|
||||||
|
@ -1626,6 +1626,8 @@ class MessagesManager : public Actor {
|
|||||||
int32 delete_last_message_date = 0;
|
int32 delete_last_message_date = 0;
|
||||||
MessageId deleted_last_message_id;
|
MessageId deleted_last_message_id;
|
||||||
|
|
||||||
|
MessageId max_added_message_id;
|
||||||
|
|
||||||
bool has_contact_registered_message = false;
|
bool has_contact_registered_message = false;
|
||||||
|
|
||||||
bool is_last_message_deleted_locally = false;
|
bool is_last_message_deleted_locally = false;
|
||||||
|
Reference in New Issue
Block a user