summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-07-20 13:58:44 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-07-20 13:58:44 (GMT)
commit8678d9b5e70f6076e1e915d8bf3938136fe4018c (patch)
treedcee95334a1abf4ed9946a3f195d7ccd0dbbaa06 /src
parent10ae8560f03c0e70e77420accf5233dee36c5b67 (diff)
parent2feb893547a19534613c434fccbb0cdc8eba6cdb (diff)
downloadQt-8678d9b5e70f6076e1e915d8bf3938136fe4018c.zip
Qt-8678d9b5e70f6076e1e915d8bf3938136fe4018c.tar.gz
Qt-8678d9b5e70f6076e1e915d8bf3938136fe4018c.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/qt-s60-public: Added missing deployment to autotest. Fixed some deployment issues on Symbian. Fixed a QSplashScreen hanging bug in S60 3.1 devices.
Diffstat (limited to 'src')
-rw-r--r--src/gui/image/qpixmap_s60.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/gui/image/qpixmap_s60.cpp b/src/gui/image/qpixmap_s60.cpp
index a13c8c8..9d571b5 100644
--- a/src/gui/image/qpixmap_s60.cpp
+++ b/src/gui/image/qpixmap_s60.cpp
@@ -157,10 +157,10 @@ class QSymbianBitmapDataAccess
{
public:
- bool heapWasLocked;
+ static int heapRefCount;
QSysInfo::SymbianVersion symbianVersion;
- explicit QSymbianBitmapDataAccess() : heapWasLocked(false)
+ explicit QSymbianBitmapDataAccess()
{
symbianVersion = QSysInfo::symbianVersion();
};
@@ -169,16 +169,22 @@ public:
inline void beginDataAccess(CFbsBitmap *bitmap)
{
- if (symbianVersion == QSysInfo::SV_9_2)
- heapWasLocked = qt_symbianFbsClient()->lockHeap();
- else
+ if (symbianVersion == QSysInfo::SV_9_2) {
+ if (heapRefCount == 0)
+ qt_symbianFbsClient()->lockHeap();
+ } else {
bitmap->LockHeap(ETrue);
+ }
+
+ heapRefCount++;
}
inline void endDataAccess(CFbsBitmap *bitmap)
{
+ heapRefCount--;
+
if (symbianVersion == QSysInfo::SV_9_2) {
- if (!heapWasLocked)
+ if (heapRefCount == 0)
qt_symbianFbsClient()->unlockHeap();
} else {
bitmap->UnlockHeap(ETrue);
@@ -186,6 +192,8 @@ public:
}
};
+int QSymbianBitmapDataAccess::heapRefCount = 0;
+
#define UPDATE_BUFFER() \
{ \