Fix file list hash calculation.

GitOrigin-RevId: e39474ebdc128079f65a4e2d97ecc4b0a8419c22
This commit is contained in:
levlam 2018-03-07 02:02:49 +03:00
parent fce5219334
commit 032aed823a
10 changed files with 10 additions and 13 deletions

View File

@ -124,7 +124,7 @@ tl_object_ptr<td_api::animation> AnimationsManager::get_animation_object(FileId
return make_tl_object<td_api::animation>(animation->duration, animation->dimensions.width, return make_tl_object<td_api::animation>(animation->duration, animation->dimensions.width,
animation->dimensions.height, animation->file_name, animation->mime_type, animation->dimensions.height, animation->file_name, animation->mime_type,
get_photo_size_object(td_->file_manager_.get(), &animation->thumbnail), get_photo_size_object(td_->file_manager_.get(), &animation->thumbnail),
td_->file_manager_->get_file_object(animation->file_id)); td_->file_manager_->get_file_object(file_id));
} }
FileId AnimationsManager::on_get_animation(std::unique_ptr<Animation> new_animation, bool replace) { FileId AnimationsManager::on_get_animation(std::unique_ptr<Animation> new_animation, bool replace) {
@ -512,7 +512,7 @@ int32 AnimationsManager::get_saved_animations_hash() const {
for (auto animation_id : saved_animation_ids_) { for (auto animation_id : saved_animation_ids_) {
auto animation = get_animation(animation_id); auto animation = get_animation(animation_id);
CHECK(animation != nullptr); CHECK(animation != nullptr);
auto file_view = td_->file_manager_->get_file_view(animation->file_id); auto file_view = td_->file_manager_->get_file_view(animation_id);
CHECK(file_view.has_remote_location()); CHECK(file_view.has_remote_location());
CHECK(!file_view.remote_location().is_encrypted()); CHECK(!file_view.remote_location().is_encrypted());
CHECK(!file_view.remote_location().is_web()); CHECK(!file_view.remote_location().is_web());

View File

@ -43,7 +43,7 @@ tl_object_ptr<td_api::audio> AudiosManager::get_audio_object(FileId file_id) {
return make_tl_object<td_api::audio>(audio->duration, audio->title, audio->performer, audio->file_name, return make_tl_object<td_api::audio>(audio->duration, audio->title, audio->performer, audio->file_name,
audio->mime_type, audio->mime_type,
get_photo_size_object(td_->file_manager_.get(), &audio->thumbnail), get_photo_size_object(td_->file_manager_.get(), &audio->thumbnail),
td_->file_manager_->get_file_object(audio->file_id)); td_->file_manager_->get_file_object(file_id));
} }
FileId AudiosManager::on_get_audio(std::unique_ptr<Audio> new_audio, bool replace) { FileId AudiosManager::on_get_audio(std::unique_ptr<Audio> new_audio, bool replace) {

View File

@ -54,7 +54,7 @@ tl_object_ptr<td_api::document> DocumentsManager::get_document_object(FileId fil
document->is_changed = false; document->is_changed = false;
return make_tl_object<td_api::document>(document->file_name, document->mime_type, return make_tl_object<td_api::document>(document->file_name, document->mime_type,
get_photo_size_object(td_->file_manager_.get(), &document->thumbnail), get_photo_size_object(td_->file_manager_.get(), &document->thumbnail),
td_->file_manager_->get_file_object(document->file_id)); td_->file_manager_->get_file_object(file_id));
} }
std::pair<DocumentsManager::DocumentType, FileId> DocumentsManager::on_get_document( std::pair<DocumentsManager::DocumentType, FileId> DocumentsManager::on_get_document(

View File

@ -802,7 +802,7 @@ tl_object_ptr<td_api::sticker> StickersManager::get_sticker_object(FileId file_i
return make_tl_object<td_api::sticker>(sticker->set_id, sticker->dimensions.width, sticker->dimensions.height, return make_tl_object<td_api::sticker>(sticker->set_id, sticker->dimensions.width, sticker->dimensions.height,
sticker->alt, sticker->is_mask, std::move(mask_position), sticker->alt, sticker->is_mask, std::move(mask_position),
get_photo_size_object(td_->file_manager_.get(), &thumbnail), get_photo_size_object(td_->file_manager_.get(), &thumbnail),
td_->file_manager_->get_file_object(sticker->file_id)); td_->file_manager_->get_file_object(file_id));
} }
tl_object_ptr<td_api::stickers> StickersManager::get_stickers_object(const vector<FileId> &sticker_ids) { tl_object_ptr<td_api::stickers> StickersManager::get_stickers_object(const vector<FileId> &sticker_ids) {
@ -3452,7 +3452,7 @@ int32 StickersManager::get_recent_stickers_hash(const vector<FileId> &sticker_id
for (auto sticker_id : sticker_ids) { for (auto sticker_id : sticker_ids) {
auto sticker = get_sticker(sticker_id); auto sticker = get_sticker(sticker_id);
CHECK(sticker != nullptr); CHECK(sticker != nullptr);
auto file_view = td_->file_manager_->get_file_view(sticker->file_id); auto file_view = td_->file_manager_->get_file_view(sticker_id);
CHECK(file_view.has_remote_location()); CHECK(file_view.has_remote_location());
CHECK(!file_view.remote_location().is_encrypted()); CHECK(!file_view.remote_location().is_encrypted());
CHECK(!file_view.remote_location().is_web()); CHECK(!file_view.remote_location().is_web());

View File

@ -43,7 +43,7 @@ tl_object_ptr<td_api::videoNote> VideoNotesManager::get_video_note_object(FileId
return make_tl_object<td_api::videoNote>(video_note->duration, video_note->dimensions.width, return make_tl_object<td_api::videoNote>(video_note->duration, video_note->dimensions.width,
get_photo_size_object(td_->file_manager_.get(), &video_note->thumbnail), get_photo_size_object(td_->file_manager_.get(), &video_note->thumbnail),
td_->file_manager_->get_file_object(video_note->file_id)); td_->file_manager_->get_file_object(file_id));
} }
FileId VideoNotesManager::on_get_video_note(std::unique_ptr<VideoNote> new_video_note, bool replace) { FileId VideoNotesManager::on_get_video_note(std::unique_ptr<VideoNote> new_video_note, bool replace) {

View File

@ -46,7 +46,7 @@ tl_object_ptr<td_api::video> VideosManager::get_video_object(FileId file_id) {
video->file_name, video->mime_type, video->has_stickers, video->file_name, video->mime_type, video->has_stickers,
video->supports_streaming, video->supports_streaming,
get_photo_size_object(td_->file_manager_.get(), &video->thumbnail), get_photo_size_object(td_->file_manager_.get(), &video->thumbnail),
td_->file_manager_->get_file_object(video->file_id)); td_->file_manager_->get_file_object(file_id));
} }
FileId VideosManager::on_get_video(std::unique_ptr<Video> new_video, bool replace) { FileId VideosManager::on_get_video(std::unique_ptr<Video> new_video, bool replace) {

View File

@ -42,7 +42,7 @@ tl_object_ptr<td_api::voiceNote> VoiceNotesManager::get_voice_note_object(FileId
CHECK(voice_note != nullptr); CHECK(voice_note != nullptr);
voice_note->is_changed = false; voice_note->is_changed = false;
return make_tl_object<td_api::voiceNote>(voice_note->duration, voice_note->waveform, voice_note->mime_type, return make_tl_object<td_api::voiceNote>(voice_note->duration, voice_note->waveform, voice_note->mime_type,
td_->file_manager_->get_file_object(voice_note->file_id)); td_->file_manager_->get_file_object(file_id));
} }
FileId VoiceNotesManager::on_get_voice_note(std::unique_ptr<VoiceNote> new_voice_note, bool replace) { FileId VoiceNotesManager::on_get_voice_note(std::unique_ptr<VoiceNote> new_voice_note, bool replace) {

View File

@ -66,14 +66,12 @@ Result<FileLoader::FileInfo> FileDownloader::init() {
ready_part_count = partial.ready_part_count_; ready_part_count = partial.ready_part_count_;
} }
} }
LOG(ERROR) << search_file_ << " " << size_;
if (search_file_ && fd_.empty() && size_ > 0 && size_ < 1000 * (1 << 20) && encryption_key_.empty() && if (search_file_ && fd_.empty() && size_ > 0 && size_ < 1000 * (1 << 20) && encryption_key_.empty() &&
!remote_.is_web()) { !remote_.is_web()) {
[&] { [&] {
TRY_RESULT(path, search_file(get_files_dir(remote_.file_type_), name_, size_)); TRY_RESULT(path, search_file(get_files_dir(remote_.file_type_), name_, size_));
TRY_RESULT(fd, FileFd::open(path, FileFd::Read)); TRY_RESULT(fd, FileFd::open(path, FileFd::Read));
LOG(INFO) << "Check hash of local file " << path; LOG(INFO) << "Check hash of local file " << path;
LOG(ERROR) << "Check hash of local file " << path;
path_ = std::move(path); path_ = std::move(path);
fd_ = std::move(fd); fd_ = std::move(fd);
need_check_ = true; need_check_ = true;

View File

@ -63,6 +63,6 @@ struct FileIdHash {
}; };
inline StringBuilder &operator<<(StringBuilder &string_builder, FileId file_id) { inline StringBuilder &operator<<(StringBuilder &string_builder, FileId file_id) {
return string_builder << file_id.get(); return string_builder << file_id.get() << "(" << file_id.get_remote() << ")";
} }
} // namespace td } // namespace td

View File

@ -745,7 +745,6 @@ Result<FileId> FileManager::register_file(FileData data, FileLocationSource file
if (file_view.has_remote_location()) { if (file_view.has_remote_location()) {
RemoteInfo info{file_view.remote_location(), file_id, file_location_source}; RemoteInfo info{file_view.remote_location(), file_id, file_location_source};
remote_key = remote_location_info_.add(info); remote_key = remote_location_info_.add(info);
CHECK(remote_key < 1000);
auto &stored_info = remote_location_info_.get(remote_key); auto &stored_info = remote_location_info_.get(remote_key);
if (stored_info.file_id == file_id) { if (stored_info.file_id == file_id) {
get_file_id_info(file_id)->pin_flag_ = true; get_file_id_info(file_id)->pin_flag_ = true;