From c3ca24c04ef7e67ab80ce913c10766eeb96305e4 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Wed, 15 Jun 2022 03:07:12 +0300 Subject: [PATCH] manually manage private QRasterWindowSurface data pointer Signed-off-by: Ivailo Monev --- src/gui/painting/qwindowsurface_raster.cpp | 7 +++++-- src/gui/painting/qwindowsurface_raster_p.h | 5 +---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/gui/painting/qwindowsurface_raster.cpp b/src/gui/painting/qwindowsurface_raster.cpp index 0ba9f92da..59197d148 100644 --- a/src/gui/painting/qwindowsurface_raster.cpp +++ b/src/gui/painting/qwindowsurface_raster.cpp @@ -50,7 +50,8 @@ public: }; QRasterWindowSurface::QRasterWindowSurface(QWidget *window) - : QWindowSurface(window), d_ptr(new QRasterWindowSurfacePrivate) + : QWindowSurface(window), + d_ptr(new QRasterWindowSurfacePrivate()) { #ifdef Q_WS_X11 d_ptr->gc = XCreateGC(qt_x11Data->display, window->handle(), 0, 0); @@ -68,8 +69,10 @@ QRasterWindowSurface::~QRasterWindowSurface() #ifdef Q_WS_X11 XFreeGC(qt_x11Data->display, d_ptr->gc); #endif - if (d_ptr->image) + if (d_ptr->image) { delete d_ptr->image; + } + delete d_ptr; } QPaintDevice *QRasterWindowSurface::paintDevice() diff --git a/src/gui/painting/qwindowsurface_raster_p.h b/src/gui/painting/qwindowsurface_raster_p.h index 1eabf1f27..c4b57bc62 100644 --- a/src/gui/painting/qwindowsurface_raster_p.h +++ b/src/gui/painting/qwindowsurface_raster_p.h @@ -34,15 +34,12 @@ // #include "qwindowsurface_p.h" -#include "qscopedpointer.h" QT_BEGIN_NAMESPACE class QPaintDevice; class QPoint; class QRegion; -class QRegion; -class QSize; class QWidget; class QRasterWindowSurfacePrivate; @@ -61,7 +58,7 @@ public: private: void prepareBuffer(QImage::Format format); Q_DECLARE_PRIVATE(QRasterWindowSurface) - QScopedPointer d_ptr; + QRasterWindowSurfacePrivate *d_ptr; }; QT_END_NAMESPACE -- 2.11.0