summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorMurray Read <ext-murray.2.read@nokia.com>2012-01-26 12:33:39 (GMT)
committerQt by Nokia <qt-info@nokia.com>2012-01-26 16:42:16 (GMT)
commit8c5614dda55ed7b539e06a3846618df8255dd18c (patch)
tree78748a0e549aec70b6198210f40fe1ee3e7eb3c8 /src/corelib
parentdd36b63ccac0026ac0a22681052e88cff8258923 (diff)
downloadQt-8c5614dda55ed7b539e06a3846618df8255dd18c.zip
Qt-8c5614dda55ed7b539e06a3846618df8255dd18c.tar.gz
Qt-8c5614dda55ed7b539e06a3846618df8255dd18c.tar.bz2
Fix exception handling in Symbian event dispatcher
The Symbian event dispatcher handles exceptions from active objects as well as leaves. But if the active object throws while it has something pushed on the cleanup stack, the exception must be converted to a leave for the cleanup to happen and the cleanup stack balance to be maintained. Task-number: ou1cimx1#970701 Change-Id: I6c8eed61cb1666e36eb4858a2c72ad0d8c6b0c8f Reviewed-by: Shane Kearns <ext-shane.2.kearns@nokia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/kernel/qeventdispatcher_symbian.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp
index 332ce09..637408e 100644
--- a/src/corelib/kernel/qeventdispatcher_symbian.cpp
+++ b/src/corelib/kernel/qeventdispatcher_symbian.cpp
@@ -824,7 +824,7 @@ QtRRActiveScheduler::RunResult QtRRActiveScheduler::RunMarkedIfReady(TInt &runPr
runPriority = active->Priority();
dataAccess->iStatus.iFlags&=~TRequestStatusAccess::ERequestActiveFlags;
int vptr = *(int*)active; // vptr can be used to identify type when debugging leaves
- TRAP(error, QT_TRYCATCH_ERROR(error, active->RunL()));
+ TRAP(error, QT_TRYCATCH_LEAVING(active->RunL()));
if (error!=KErrNone)
error=active->RunError(error);
if (error) {