diff --git a/src/messages/Image.cpp b/src/messages/Image.cpp index 412727d01..558ffea24 100644 --- a/src/messages/Image.cpp +++ b/src/messages/Image.cpp @@ -198,6 +198,15 @@ namespace detail { } // namespace detail // IMAGE2 +Image::~Image() +{ + // run destructor of Frames in gui thread + if (!isGuiThread()) + { + postToThread([frames = this->frames_.release()]() { delete frames; }); + } +} + ImagePtr Image::fromUrl(const Url &url, qreal scale) { static std::unordered_map> cache; diff --git a/src/messages/Image.hpp b/src/messages/Image.hpp index 7aa184e9d..f114d1f0f 100644 --- a/src/messages/Image.hpp +++ b/src/messages/Image.hpp @@ -49,6 +49,8 @@ using ImagePtr = std::shared_ptr; class Image : public std::enable_shared_from_this, boost::noncopyable { public: + ~Image(); + static ImagePtr fromUrl(const Url &url, qreal scale = 1); static ImagePtr fromPixmap(const QPixmap &pixmap, qreal scale = 1); static ImagePtr getEmpty();