diff --git a/Telegram/SourceFiles/ui/image/image.h b/Telegram/SourceFiles/ui/image/image.h index ce770c36a..6dff6f1fc 100644 --- a/Telegram/SourceFiles/ui/image/image.h +++ b/Telegram/SourceFiles/ui/image/image.h @@ -45,6 +45,13 @@ ImagePtr Create(const GeoPointLocation &location); class Source { public: + Source() = default; + Source(const Source &other) = delete; + Source(Source &&other) = delete; + Source &operator=(const Source &other) = delete; + Source &operator=(Source &&other) = delete; + virtual ~Source() = default; + virtual void load( Data::FileOrigin origin, bool loadFirst, @@ -83,8 +90,6 @@ public: virtual QByteArray bytesForCache() = 0; - virtual ~Source() = default; - }; } // namespace Images diff --git a/Telegram/SourceFiles/ui/image/image_source.cpp b/Telegram/SourceFiles/ui/image/image_source.cpp index d38f63caa..e7075d613 100644 --- a/Telegram/SourceFiles/ui/image/image_source.cpp +++ b/Telegram/SourceFiles/ui/image/image_source.cpp @@ -325,6 +325,8 @@ void RemoteSource::loadLocal() { void RemoteSource::setImageBytes(const QByteArray &bytes) { if (bytes.isEmpty()) { return; + } else if (loaderValid()) { + unload(); } _loader = createLoader({}, LoadFromLocalOnly, true); _loader->finishWithBytes(bytes);