diff --git a/cpp/capi.cpp b/cpp/capi.cpp index 54a3cbd0..73517a1d 100644 --- a/cpp/capi.cpp +++ b/cpp/capi.cpp @@ -139,12 +139,15 @@ class GoImageProvider : public QQuickImageProvider { width = requestedSize.width(); height = requestedSize.height(); } - QImage *image = reinterpret_cast(hookRequestImage(imageFunc, (char*)ba.constData(), ba.size(), width, height)); - *size = image->size(); + QImage *ptr = reinterpret_cast(hookRequestImage(imageFunc, (char*)ba.constData(), ba.size(), width, height)); + QImage image = *ptr; + delete ptr; + + *size = image.size(); if (requestedSize.isValid() && requestedSize != *size) { - *image = image->scaled(requestedSize, Qt::KeepAspectRatio); + image = image.scaled(requestedSize, Qt::KeepAspectRatio); } - return *image; + return image; }; private: