Move limit increase to OrderedMessages::get_history.
This commit is contained in:
parent
aef0cfe4bc
commit
47b225c11f
|
@ -21003,12 +21003,6 @@ tl_object_ptr<td_api::messages> MessagesManager::get_dialog_history(DialogId dia
|
||||||
<< " tries left, have_full_history = " << d->have_full_history
|
<< " tries left, have_full_history = " << d->have_full_history
|
||||||
<< ", have_full_history_source = " << d->have_full_history_source;
|
<< ", have_full_history_source = " << d->have_full_history_source;
|
||||||
|
|
||||||
bool is_limit_increased = false;
|
|
||||||
if (limit == -offset) {
|
|
||||||
limit++;
|
|
||||||
is_limit_increased = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
auto message_ids =
|
auto message_ids =
|
||||||
d->ordered_messages.get_history(d->last_message_id, from_message_id, offset, limit, left_tries == 0);
|
d->ordered_messages.get_history(d->last_message_id, from_message_id, offset, limit, left_tries == 0);
|
||||||
if (!message_ids.empty()) {
|
if (!message_ids.empty()) {
|
||||||
|
@ -21024,12 +21018,6 @@ tl_object_ptr<td_api::messages> MessagesManager::get_dialog_history(DialogId dia
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG(INFO) << "Have " << message_ids.size() << " messages out of requested "
|
|
||||||
<< (is_limit_increased ? "increased " : "exact ") << limit;
|
|
||||||
if (is_limit_increased && static_cast<size_t>(limit) == message_ids.size()) {
|
|
||||||
message_ids.pop_back();
|
|
||||||
}
|
|
||||||
|
|
||||||
LOG(INFO) << "Return " << message_ids << " in result to getChatHistory";
|
LOG(INFO) << "Return " << message_ids << " in result to getChatHistory";
|
||||||
promise.set_value(Unit()); // can return some messages
|
promise.set_value(Unit()); // can return some messages
|
||||||
return get_messages_object(-1, dialog_id, message_ids, true,
|
return get_messages_object(-1, dialog_id, message_ids, true,
|
||||||
|
|
|
@ -336,6 +336,12 @@ void OrderedMessages::traverse_messages(const std::function<bool(MessageId)> &ne
|
||||||
|
|
||||||
vector<MessageId> OrderedMessages::get_history(MessageId last_message_id, MessageId &from_message_id, int32 &offset,
|
vector<MessageId> OrderedMessages::get_history(MessageId last_message_id, MessageId &from_message_id, int32 &offset,
|
||||||
int32 &limit, bool force) const {
|
int32 &limit, bool force) const {
|
||||||
|
CHECK(limit > 0);
|
||||||
|
bool is_limit_increased = false;
|
||||||
|
if (limit == -offset) {
|
||||||
|
limit++;
|
||||||
|
is_limit_increased = true;
|
||||||
|
}
|
||||||
CHECK(-limit < offset && offset <= 0);
|
CHECK(-limit < offset && offset <= 0);
|
||||||
|
|
||||||
auto it = get_const_iterator(from_message_id);
|
auto it = get_const_iterator(from_message_id);
|
||||||
|
@ -422,6 +428,10 @@ vector<MessageId> OrderedMessages::get_history(MessageId last_message_id, Messag
|
||||||
if (from_the_end) {
|
if (from_the_end) {
|
||||||
from_message_id = MessageId();
|
from_message_id = MessageId();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (is_limit_increased && static_cast<size_t>(limit) == message_ids.size()) {
|
||||||
|
message_ids.pop_back();
|
||||||
|
}
|
||||||
return message_ids;
|
return message_ids;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user