From 45c5cc619933d1283da27a15d5d7ab3d2e8e5329 Mon Sep 17 00:00:00 2001 From: Marc Mutz Date: Fri, 24 May 2019 22:06:09 +0200 Subject: QWidget: replace manual memory management with unique_ptr [4/N]: extra->curs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Id65ead5563321b8edbe0055ad1531c2442d4d597 Reviewed-by: Friedemann Kleint Reviewed-by: Edward Welbourne Reviewed-by: MÃ¥rten Nordheim --- src/widgets/kernel/qwidget.cpp | 16 +++------------- src/widgets/kernel/qwidget_p.h | 2 +- 2 files changed, 4 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp index 78a8af62df..aa93ee6be2 100644 --- a/src/widgets/kernel/qwidget.cpp +++ b/src/widgets/kernel/qwidget.cpp @@ -1823,9 +1823,6 @@ void QWidgetPrivate::createExtra() extra->topextra = 0; #if QT_CONFIG(graphicsview) extra->proxyWidget = 0; -#endif -#ifndef QT_NO_CURSOR - extra->curs = 0; #endif extra->minw = 0; extra->minh = 0; @@ -1860,9 +1857,6 @@ void QWidgetPrivate::createSysExtra() void QWidgetPrivate::deleteExtra() { if (extra) { // if exists -#ifndef QT_NO_CURSOR - delete extra->curs; -#endif deleteSysExtra(); #ifndef QT_NO_STYLE_STYLESHEET // dereference the stylesheet style @@ -5019,9 +5013,7 @@ void QWidget::setCursor(const QCursor &cursor) #endif { d->createExtra(); - QCursor *newCursor = new QCursor(cursor); - delete d->extra->curs; - d->extra->curs = newCursor; + d->extra->curs = qt_make_unique(cursor); } setAttribute(Qt::WA_SetCursor); d->setCursor_sys(cursor); @@ -5040,10 +5032,8 @@ void QWidgetPrivate::setCursor_sys(const QCursor &cursor) void QWidget::unsetCursor() { Q_D(QWidget); - if (d->extra) { - delete d->extra->curs; - d->extra->curs = 0; - } + if (d->extra) + d->extra->curs.reset(); if (!isWindow()) setAttribute(Qt::WA_SetCursor, false); d->unsetCursor_sys(); diff --git a/src/widgets/kernel/qwidget_p.h b/src/widgets/kernel/qwidget_p.h index b43489a98f..03b09f2ca8 100644 --- a/src/widgets/kernel/qwidget_p.h +++ b/src/widgets/kernel/qwidget_p.h @@ -244,7 +244,7 @@ struct QWExtra { QGraphicsProxyWidget *proxyWidget; // if the widget is embedded #endif #ifndef QT_NO_CURSOR - QCursor *curs; + std::unique_ptr curs; #endif QPointer style; QPointer focus_proxy; -- cgit v1.2.3