From f2348fc74918ea2465fdd6c81d72972040db6152 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 30 Oct 2018 10:17:34 +0400 Subject: [PATCH] Fix document unloading. --- Telegram/SourceFiles/core/media_active_cache.h | 1 - Telegram/SourceFiles/data/data_document.cpp | 8 +++++--- Telegram/SourceFiles/ui/image/image_source.cpp | 4 +++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/core/media_active_cache.h b/Telegram/SourceFiles/core/media_active_cache.h index b01249822..cd825566d 100644 --- a/Telegram/SourceFiles/core/media_active_cache.h +++ b/Telegram/SourceFiles/core/media_active_cache.h @@ -32,7 +32,6 @@ private: SingleQueuedInvokation _delayed; int64 _usage = 0; int64 _limit = 0; - Fn _unload; }; diff --git a/Telegram/SourceFiles/data/data_document.cpp b/Telegram/SourceFiles/data/data_document.cpp index 89805afc7..a17954dcf 100644 --- a/Telegram/SourceFiles/data/data_document.cpp +++ b/Telegram/SourceFiles/data/data_document.cpp @@ -595,9 +595,10 @@ void DocumentData::unload() { delete replyPreview.get(); replyPreview = ImagePtr(); } - - ActiveCache().decrement(_data.size()); - _data.clear(); + if (!_data.isEmpty()) { + ActiveCache().decrement(_data.size()); + _data.clear(); + } } void DocumentData::automaticLoad( @@ -1358,6 +1359,7 @@ DocumentData::~DocumentData() { if (loading()) { destroyLoaderDelayed(); } + unload(); } QString DocumentData::ComposeNameString( diff --git a/Telegram/SourceFiles/ui/image/image_source.cpp b/Telegram/SourceFiles/ui/image/image_source.cpp index 035167616..2e49e65cc 100644 --- a/Telegram/SourceFiles/ui/image/image_source.cpp +++ b/Telegram/SourceFiles/ui/image/image_source.cpp @@ -149,7 +149,9 @@ LocalFileSource::LocalFileSource( : _path(path) , _bytes(content) , _format(format) -, _data(std::move(data)) { +, _data(std::move(data)) +, _width(_data.width()) +, _height(_data.height()) { } void LocalFileSource::load(