summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/codecs/qtextcodec_symbian.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/corelib/codecs/qtextcodec_symbian.cpp b/src/corelib/codecs/qtextcodec_symbian.cpp
index 1b09ec4..e1eb336 100644
--- a/src/corelib/codecs/qtextcodec_symbian.cpp
+++ b/src/corelib/codecs/qtextcodec_symbian.cpp
@@ -167,8 +167,12 @@ Q_GLOBAL_STATIC(QThreadStorage<CCnvCharacterSetConverter *>,gs_converterStore);
CCnvCharacterSetConverter *QSymbianTextCodec::converter()
{
CCnvCharacterSetConverter *&conv = gs_converterStore()->localData();
- if (!conv)
+ if (!conv) {
+ QScopedPointer<CTrapCleanup> trap;
+ if (!User::TrapHandler())
+ trap.reset(CTrapCleanup::New());
QT_TRAP_THROWING(conv = CCnvCharacterSetConverter::NewL())
+ }
return conv;
}