Drop ready_size when delete partial remote location.

This commit is contained in:
levlam 2023-05-30 12:29:12 +03:00
parent fe734fd617
commit 1ff0e66eb0
4 changed files with 24 additions and 20 deletions

View File

@ -571,16 +571,16 @@ class UploadProfilePhotoQuery final : public Td::ResultHandler {
return on_error(result_ptr.move_as_error()); return on_error(result_ptr.move_as_error());
} }
if (file_id_.is_valid()) {
td_->file_manager_->delete_partial_remote_location(file_id_);
}
if (!only_suggest_) { if (!only_suggest_) {
td_->contacts_manager_->on_set_profile_photo(user_id_, result_ptr.move_as_ok(), is_fallback_, 0, td_->contacts_manager_->on_set_profile_photo(user_id_, result_ptr.move_as_ok(), is_fallback_, 0,
std::move(promise_)); std::move(promise_));
} else { } else {
promise_.set_value(Unit()); promise_.set_value(Unit());
} }
if (file_id_.is_valid()) {
td_->file_manager_->delete_partial_remote_location(file_id_);
}
} }
void on_error(Status status) final { void on_error(Status status) final {

View File

@ -989,11 +989,11 @@ class InitHistoryImportQuery final : public Td::ResultHandler {
return on_error(result_ptr.move_as_error()); return on_error(result_ptr.move_as_error());
} }
td_->file_manager_->delete_partial_remote_location(file_id_);
auto ptr = result_ptr.move_as_ok(); auto ptr = result_ptr.move_as_ok();
td_->messages_manager_->start_import_messages(dialog_id_, ptr->id_, std::move(attached_file_ids_), td_->messages_manager_->start_import_messages(dialog_id_, ptr->id_, std::move(attached_file_ids_),
std::move(promise_)); std::move(promise_));
td_->file_manager_->delete_partial_remote_location(file_id_);
} }
void on_error(Status status) final { void on_error(Status status) final {
@ -1005,7 +1005,6 @@ class InitHistoryImportQuery final : public Td::ResultHandler {
} }
td_->file_manager_->delete_partial_remote_location(file_id_); td_->file_manager_->delete_partial_remote_location(file_id_);
td_->messages_manager_->on_get_dialog_error(dialog_id_, status, "InitHistoryImportQuery"); td_->messages_manager_->on_get_dialog_error(dialog_id_, status, "InitHistoryImportQuery");
promise_.set_error(std::move(status)); promise_.set_error(std::move(status));
} }
@ -1043,11 +1042,11 @@ class UploadImportedMediaQuery final : public Td::ResultHandler {
return on_error(result_ptr.move_as_error()); return on_error(result_ptr.move_as_error());
} }
td_->file_manager_->delete_partial_remote_location(file_id_);
// ignore response // ignore response
promise_.set_value(Unit()); promise_.set_value(Unit());
td_->file_manager_->delete_partial_remote_location(file_id_);
} }
void on_error(Status status) final { void on_error(Status status) final {
@ -1148,11 +1147,11 @@ class EditDialogPhotoQuery final : public Td::ResultHandler {
auto ptr = result_ptr.move_as_ok(); auto ptr = result_ptr.move_as_ok();
LOG(INFO) << "Receive result for EditDialogPhotoQuery: " << to_string(ptr); LOG(INFO) << "Receive result for EditDialogPhotoQuery: " << to_string(ptr);
td_->updates_manager_->on_get_updates(std::move(ptr), std::move(promise_));
if (file_id_.is_valid() && was_uploaded_) { if (file_id_.is_valid() && was_uploaded_) {
td_->file_manager_->delete_partial_remote_location(file_id_); td_->file_manager_->delete_partial_remote_location(file_id_);
} }
td_->updates_manager_->on_get_updates(std::move(ptr), std::move(promise_));
} }
void on_error(Status status) final { void on_error(Status status) final {
@ -3614,17 +3613,16 @@ class SendMediaQuery final : public Td::ResultHandler {
return on_error(result_ptr.move_as_error()); return on_error(result_ptr.move_as_error());
} }
if (was_thumbnail_uploaded_) {
CHECK(thumbnail_file_id_.is_valid());
// always delete partial remote location for the thumbnail, because it can't be reused anyway
// TODO delete it only in the case it can't be merged with file thumbnail
td_->file_manager_->delete_partial_remote_location(thumbnail_file_id_);
}
auto ptr = result_ptr.move_as_ok(); auto ptr = result_ptr.move_as_ok();
LOG(INFO) << "Receive result for SendMediaQuery for " << random_id_ << ": " << to_string(ptr); LOG(INFO) << "Receive result for SendMediaQuery for " << random_id_ << ": " << to_string(ptr);
td_->messages_manager_->check_send_message_result(random_id_, dialog_id_, ptr.get(), "SendMedia"); td_->messages_manager_->check_send_message_result(random_id_, dialog_id_, ptr.get(), "SendMedia");
td_->updates_manager_->on_get_updates(std::move(ptr), Promise<Unit>()); td_->updates_manager_->on_get_updates(std::move(ptr), Promise<Unit>());
if (was_thumbnail_uploaded_) {
CHECK(thumbnail_file_id_.is_valid());
// always delete partial remote location for the thumbnail, because it can't be reused anyway
td_->file_manager_->delete_partial_remote_location(thumbnail_file_id_);
}
} }
void on_error(Status status) final { void on_error(Status status) final {

View File

@ -73,11 +73,11 @@ class UploadRingtoneQuery final : public Td::ResultHandler {
return on_error(result_ptr.move_as_error()); return on_error(result_ptr.move_as_error());
} }
td_->file_manager_->delete_partial_remote_location(file_id_);
auto result = result_ptr.move_as_ok(); auto result = result_ptr.move_as_ok();
LOG(INFO) << "Receive result for UploadRingtoneQuery: " << to_string(result); LOG(INFO) << "Receive result for UploadRingtoneQuery: " << to_string(result);
promise_.set_value(std::move(result)); promise_.set_value(std::move(result));
td_->file_manager_->delete_partial_remote_location(file_id_);
} }
void on_error(Status status) final { void on_error(Status status) final {

View File

@ -291,6 +291,12 @@ void FileNode::delete_partial_remote_location() {
remote_.partial.reset(); remote_.partial.reset();
on_changed(); on_changed();
} }
if (remote_.ready_size != 0) {
VLOG(update_file) << "File " << main_file_id_ << " has changed remote ready size from " << remote_.ready_size
<< " to " << 0;
remote_.ready_size = 0;
on_info_changed();
}
} }
void FileNode::set_partial_remote_location(PartialRemoteFileLocation remote, int64 ready_size) { void FileNode::set_partial_remote_location(PartialRemoteFileLocation remote, int64 ready_size) {