diff options
Diffstat (limited to 'src/plugins')
7 files changed, 16 insertions, 33 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp b/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp index b45de1b25e..b20c9f0d0d 100644 --- a/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp +++ b/src/plugins/platforms/directfb/qdirectfbbackingstore.cpp @@ -65,17 +65,12 @@ QDirectFbBackingStore::QDirectFbBackingStore(QWindow *window) QDirectFbBlitter *blitter = new QDirectFbBlitter(window->size(), m_dfbSurface); m_pmdata = new QDirectFbBlitterPlatformPixmap; m_pmdata->setBlittable(blitter); - m_pixmap = new QPixmap(m_pmdata); -} - -QDirectFbBackingStore::~QDirectFbBackingStore() -{ - delete m_pixmap; + m_pixmap.reset(new QPixmap(m_pmdata)); } QPaintDevice *QDirectFbBackingStore::paintDevice() { - return m_pixmap; + return m_pixmap.data(); } void QDirectFbBackingStore::flush(QWindow *, const QRegion ®ion, const QPoint &offset) diff --git a/src/plugins/platforms/directfb/qdirectfbbackingstore.h b/src/plugins/platforms/directfb/qdirectfbbackingstore.h index aed78b6f93..677d8281ba 100644 --- a/src/plugins/platforms/directfb/qdirectfbbackingstore.h +++ b/src/plugins/platforms/directfb/qdirectfbbackingstore.h @@ -53,7 +53,6 @@ class QDirectFbBackingStore : public QPlatformBackingStore { public: QDirectFbBackingStore(QWindow *window); - ~QDirectFbBackingStore(); QPaintDevice *paintDevice(); void flush(QWindow *window, const QRegion ®ion, const QPoint &offset); @@ -66,9 +65,8 @@ public: private: void lockSurfaceToImage(); - QPixmap *m_pixmap; + QScopedPointer<QPixmap> m_pixmap; QBlittablePlatformPixmap *m_pmdata; - IDirectFBSurface *m_dfbSurface; }; diff --git a/src/plugins/platforms/directfb/qdirectfbcursor.cpp b/src/plugins/platforms/directfb/qdirectfbcursor.cpp index b39a3f3c0a..869dc3f97d 100644 --- a/src/plugins/platforms/directfb/qdirectfbcursor.cpp +++ b/src/plugins/platforms/directfb/qdirectfbcursor.cpp @@ -47,11 +47,9 @@ QDirectFBCursor::QDirectFBCursor(QPlatformScreen *screen) : QPlatformCursor(screen) { QDirectFbConvenience::dfbInterface()->GetDisplayLayer(QDirectFbConvenience::dfbInterface(),DLID_PRIMARY, &m_layer); - m_image = new QPlatformCursorImage(0, 0, 0, 0, 0, 0); + m_image.reset(new QPlatformCursorImage(0, 0, 0, 0, 0, 0)); } -#warning "Memory leak?" - void QDirectFBCursor::changeCursor(QCursor *cursor, QWindow *) { int xSpot; diff --git a/src/plugins/platforms/directfb/qdirectfbcursor.h b/src/plugins/platforms/directfb/qdirectfbcursor.h index 22328da402..6c02c7ead8 100644 --- a/src/plugins/platforms/directfb/qdirectfbcursor.h +++ b/src/plugins/platforms/directfb/qdirectfbcursor.h @@ -55,7 +55,7 @@ public: private: IDirectFBDisplayLayer *m_layer; - QPlatformCursorImage *m_image; + QScopedPointer<QPlatformCursorImage> m_image; }; #endif // QDIRECTFBCURSOR_H diff --git a/src/plugins/platforms/directfb/qdirectfbinput.h b/src/plugins/platforms/directfb/qdirectfbinput.h index b0fe0c79eb..29300698c3 100644 --- a/src/plugins/platforms/directfb/qdirectfbinput.h +++ b/src/plugins/platforms/directfb/qdirectfbinput.h @@ -75,7 +75,7 @@ private: IDirectFB *m_dfbInterface; IDirectFBDisplayLayer *m_dfbDisplayLayer; - IDirectFBEventBuffer *m_eventBuffer; + IDirectFBEventBuffer *m_eventBuffer; // XXX: TODO: FIXME: leaked!!! (but it is a singleton) bool m_shouldStop; QSemaphore m_waitStop; diff --git a/src/plugins/platforms/directfb/qdirectfbintegration.cpp b/src/plugins/platforms/directfb/qdirectfbintegration.cpp index efa71ce361..96ba391a38 100644 --- a/src/plugins/platforms/directfb/qdirectfbintegration.cpp +++ b/src/plugins/platforms/directfb/qdirectfbintegration.cpp @@ -75,12 +75,7 @@ QDirectFbScreen::QDirectFbScreen(int display) m_depth = QDirectFbConvenience::colorDepthForSurface(config.pixelformat); m_physicalSize = QSizeF(config.width, config.height) * inch / dpi; - m_cursor = new QDirectFBCursor(this); -} - -QDirectFbScreen::~QDirectFbScreen() -{ -#warning "Delete the cursor?" + m_cursor.reset(new QDirectFBCursor(this)); } QDirectFbIntegration::QDirectFbIntegration() @@ -111,18 +106,17 @@ QDirectFbIntegration::QDirectFbIntegration() QDirectFbScreen *primaryScreen = new QDirectFbScreen(0); screenAdded(primaryScreen); - m_inputRunner = new QThread; - m_input = new QDirectFbInput(0); - m_input->moveToThread(m_inputRunner); - QObject::connect(m_inputRunner,SIGNAL(started()),m_input,SLOT(runInputEventLoop())); + m_inputRunner.reset(new QThread); + m_input.reset(new QDirectFbInput(0)); + m_input->moveToThread(m_inputRunner.data()); + QObject::connect(m_inputRunner.data(), SIGNAL(started()), + m_input.data(), SLOT(runInputEventLoop())); m_inputRunner->start(); } QDirectFbIntegration::~QDirectFbIntegration() { m_input->stopInputEventLoop(); - delete m_inputRunner; - delete m_input; } QPlatformPixmap *QDirectFbIntegration::createPlatformPixmap(QPlatformPixmap::PixelType type) const @@ -135,8 +129,7 @@ QPlatformPixmap *QDirectFbIntegration::createPlatformPixmap(QPlatformPixmap::Pix QPlatformWindow *QDirectFbIntegration::createPlatformWindow(QWindow *window) const { - QDirectFbInput *input = const_cast<QDirectFbInput *>(m_input);//gah - return new QDirectFbWindow(window,input); + return new QDirectFbWindow(window,m_input.data()); } QAbstractEventDispatcher *QDirectFbIntegration::guiThreadEventDispatcher() const diff --git a/src/plugins/platforms/directfb/qdirectfbintegration.h b/src/plugins/platforms/directfb/qdirectfbintegration.h index cba32497b3..f44febeadf 100644 --- a/src/plugins/platforms/directfb/qdirectfbintegration.h +++ b/src/plugins/platforms/directfb/qdirectfbintegration.h @@ -58,7 +58,6 @@ class QDirectFbScreen : public QPlatformScreen { public: QDirectFbScreen(int display); - ~QDirectFbScreen(); QRect geometry() const { return m_geometry; } int depth() const { return m_depth; } @@ -74,7 +73,7 @@ public: IDirectFBDisplayLayer *m_layer; private: - QDirectFBCursor *m_cursor; + QScopedPointer<QDirectFBCursor> m_cursor; }; class QDirectFbIntegration : public QPlatformIntegration @@ -91,8 +90,8 @@ public: QPlatformFontDatabase *fontDatabase() const; private: - QDirectFbInput *m_input; - QThread *m_inputRunner; + QScopedPointer<QDirectFbInput> m_input; + QScopedPointer<QThread> m_inputRunner; QPlatformFontDatabase *m_fontDb; QAbstractEventDispatcher *m_eventDispatcher; }; |