diff options
author | Murray Read <ext-murray.2.read@nokia.com> | 2012-01-26 12:33:39 +0000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-26 17:42:16 +0100 |
commit | 8c5614dda55ed7b539e06a3846618df8255dd18c (patch) | |
tree | 78748a0e549aec70b6198210f40fe1ee3e7eb3c8 /src/corelib | |
parent | dd36b63ccac0026ac0a22681052e88cff8258923 (diff) | |
download | qt4-tools-8c5614dda55ed7b539e06a3846618df8255dd18c.tar.gz |
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.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/corelib/kernel/qeventdispatcher_symbian.cpp b/src/corelib/kernel/qeventdispatcher_symbian.cpp index 332ce09102..637408e8d3 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) { |