summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb/qdirectfbconvenience.cpp
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2011-09-19 00:57:45 +0200
committerQt by Nokia <qt-info@nokia.com>2011-10-21 16:54:45 +0200
commit500dc2a6f888e283c6d40730bdf7c2998ee0437b (patch)
treeeb1803d6ac87fb68f211fb2ffadd59cff805c0dc /src/plugins/platforms/directfb/qdirectfbconvenience.cpp
parent405894fc39cdab937c38b917adf4e8d390f80790 (diff)
[directfb] Introduce the QDirectFBPointer from QWS/gfxdrivers
Introduce QDirectFBPointer and use it throughout the code to fix various resource leaks in the DirectFB backend. Fix the surface ownership of the IDirectFBSurface in the Blittable/BackingStore code. Change-Id: I0d4572eaab80b3558e644f26d76222461bf37bbb Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Diffstat (limited to 'src/plugins/platforms/directfb/qdirectfbconvenience.cpp')
-rw-r--r--src/plugins/platforms/directfb/qdirectfbconvenience.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbconvenience.cpp b/src/plugins/platforms/directfb/qdirectfbconvenience.cpp
index 38130c8deb..440e9b00bc 100644
--- a/src/plugins/platforms/directfb/qdirectfbconvenience.cpp
+++ b/src/plugins/platforms/directfb/qdirectfbconvenience.cpp
@@ -106,13 +106,17 @@ int QDirectFbConvenience::colorDepthForSurface(const DFBSurfacePixelFormat forma
return ((0x1f << 7) & format) >> 7;
}
+/**
+ * This is borrowing the reference of the QDirectFbBlitter. You may not store this
+ * pointer as a class member but must only use it locally.
+ */
IDirectFBSurface *QDirectFbConvenience::dfbSurfaceForPlatformPixmap(QPlatformPixmap *handle)
{
QBlittablePlatformPixmap *blittablePmData = static_cast<QBlittablePlatformPixmap *>(handle);
if (blittablePmData) {
QBlittable *blittable = blittablePmData->blittable();
QDirectFbBlitter *dfbBlitter = static_cast<QDirectFbBlitter *>(blittable);
- return dfbBlitter->m_surface;
+ return dfbBlitter->m_surface.data();
}
return 0;
}