From 71adbdf6169829b1a5b34a6f71c60915c75f7270 Mon Sep 17 00:00:00 2001 From: mread Date: Mon, 21 Jun 2010 10:36:00 +0100 Subject: Fix for TLS problem which causes apps to crash in the S60 port QS60Data member data was being reset to zero after initialisation by a memclr call in QS60Data. The correct way to initialise the member data is with the member initialisation list, so this is now done, and all member data is now correctly initialised. Reviewed-by: Jason Barron --- src/gui/kernel/qt_s60_p.h | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qt_s60_p.h b/src/gui/kernel/qt_s60_p.h index ed53ccf..204e38c 100644 --- a/src/gui/kernel/qt_s60_p.h +++ b/src/gui/kernel/qt_s60_p.h @@ -253,8 +253,35 @@ private: }; inline QS60Data::QS60Data() +: uid(TUid::Null()), + screenDepth(0), + screenWidthInPixels(0), + screenHeightInPixels(0), + screenWidthInTwips(0), + screenHeightInTwips(0), + defaultDpiX(0), + defaultDpiY(0), + curWin(0), + virtualMousePressedKeys(0), + virtualMouseAccelDX(0), + virtualMouseAccelDY(0), + virtualMouseMaxAccel(0), +#ifndef Q_SYMBIAN_FIXED_POINTER_CURSORS + brokenPointerCursors(0), +#endif + hasTouchscreen(0), + mouseInteractionEnabled(0), + virtualMouseRequired(0), + qtOwnsS60Environment(0), + supportsPremultipliedAlpha(0), + avkonComponentsSupportTransparency(0), + menuBeingConstructed(0), + memoryLimitForHwRendering(0), + s60ApplicationFactory(0), +#ifdef Q_WS_S60 + s60InstalledTrapHandler(0) +#endif { - memclr(this, sizeof(QS60Data)); //zero init data } inline void QS60Data::updateScreenSize() -- cgit v0.12