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(