summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/directfb/qdirectfbbackingstore.cpp9
-rw-r--r--src/plugins/platforms/directfb/qdirectfbbackingstore.h4
-rw-r--r--src/plugins/platforms/directfb/qdirectfbcursor.cpp4
-rw-r--r--src/plugins/platforms/directfb/qdirectfbcursor.h2
-rw-r--r--src/plugins/platforms/directfb/qdirectfbinput.h2
-rw-r--r--src/plugins/platforms/directfb/qdirectfbintegration.cpp21
-rw-r--r--src/plugins/platforms/directfb/qdirectfbintegration.h7
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 &region, 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 &region, 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;
};