From a73213cf5acdaabcd61245a6882e608b2337da3c Mon Sep 17 00:00:00 2001 From: Anders Bakken Date: Wed, 30 Sep 2009 11:07:55 -0700 Subject: Clean up releaseSurface in QDirectFBPaintDevice Instead of having to call unlockSurface/releaseSubSurface and releaseSurface to release the surface in QDirectFBWindowSurface make releaseSurface do all three things. Reviewed-by: Donald Carr --- src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp | 1 + src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp | 11 ++++------- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp index 46cf65b..cb4fb88 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbpaintdevice.cpp @@ -209,6 +209,7 @@ void QDirectFBPaintDevice::releaseSubSurface() { Q_ASSERT(QDirectFBScreen::instance()); if (subSurface) { + unlockSurface(); screen->releaseDFBSurface(subSurface); subSurface = 0; } diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp index 19103cb..51afcc7 100644 --- a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp +++ b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp @@ -200,10 +200,6 @@ void QDirectFBWindowSurface::setGeometry(const QRect &rect) if (sizeChanged) { delete engine; engine = 0; - unlockSurface(); -#ifdef QT_DIRECTFB_SUBSURFACE - releaseSubSurface(); -#endif releaseSurface(); Q_ASSERT(!dfbSurface); } @@ -430,9 +426,10 @@ void QDirectFBWindowSurface::updateFormat() void QDirectFBWindowSurface::releaseSurface() { if (dfbSurface) { -#ifdef QT_NO_DIRECTFB_SUBSURFACE - if (lockFlgs) - unlockSurface(); +#ifdef QT_DIRECTFB_SUBSURFACE + releaseSubSurface(); +#else + unlockSurface(); #endif #ifdef QT_NO_DIRECTFB_WM Q_ASSERT(screen->primarySurface()); -- cgit v0.12