summaryrefslogtreecommitdiffstats
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
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.
-rw-r--r--src/gui/image/qpixmap_s60.cpp20
-rw-r--r--tests/auto/qpixmap/qpixmap.pro8
2 files changed, 19 insertions, 9 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() \
{ \
diff --git a/tests/auto/qpixmap/qpixmap.pro b/tests/auto/qpixmap/qpixmap.pro
index c3ee192..ff8258f 100644
--- a/tests/auto/qpixmap/qpixmap.pro
+++ b/tests/auto/qpixmap/qpixmap.pro
@@ -12,14 +12,16 @@ wince*|symbian: {
icons.sources = convertFromToHICON/*
icons.path = convertFromToHICON
- DEPLOYMENT += task31722_0 task31722_1 icons
- DEPLOYMENT_PLUGIN += qico
+ loadFromData.sources = loadFromData/*
+ loadFromData.path = loadFromData
+
+ DEPLOYMENT += task31722_0 task31722_1 icons loadFromData
}
wince*: {
DEFINES += SRCDIR=\\\".\\\"
+ DEPLOYMENT_PLUGIN += qico
} else:symbian {
- DEPLOYMENT_PLUGIN += qmng
LIBS += -lfbscli.dll -lbitgdi.dll -lgdi.dll
contains(QT_CONFIG, openvg) {
LIBS += $$QMAKE_LIBS_OPENVG