OSDN Git Service

manually manage private QRasterWindowSurface data pointer
authorIvailo Monev <xakepa10@gmail.com>
Wed, 15 Jun 2022 00:07:12 +0000 (03:07 +0300)
committerIvailo Monev <xakepa10@gmail.com>
Wed, 15 Jun 2022 00:07:12 +0000 (03:07 +0300)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/gui/painting/qwindowsurface_raster.cpp
src/gui/painting/qwindowsurface_raster_p.h

index 0ba9f92..59197d1 100644 (file)
@@ -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()
index 1eabf1f..c4b57bc 100644 (file)
 //
 
 #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<QRasterWindowSurfacePrivate> d_ptr;
+    QRasterWindowSurfacePrivate *d_ptr;
 };
 
 QT_END_NAMESPACE