From 2fc799f85a725f069cb25688c041de4fd448e308 Mon Sep 17 00:00:00 2001 From: fourtf Date: Mon, 7 Oct 2019 20:03:15 +0200 Subject: [PATCH] run destructor of Frames in gui thread --- src/messages/Image.cpp | 9 +++++++++ src/messages/Image.hpp | 2 ++ 2 files changed, 11 insertions(+) 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();