Get rid of the evilness of Q_GLOBAL_STATIC_WITH_INITIALIZER
authorThiago Macieira <thiago@kde.org>
Wed, 20 Jul 2011 14:06:58 +0000 (16:06 +0200)
committerQt by Nokia <qt-info@nokia.com>
Thu, 21 Jul 2011 06:54:00 +0000 (08:54 +0200)
commit6d3c0643020aaf002b985a16a66f3c289daea4f0
tree875c76adf08242cd8ed4dd7678509b3d085dc51e
parentde587d736a1fd661c3fddeebefce02e436a2c7a5
Get rid of the evilness of Q_GLOBAL_STATIC_WITH_INITIALIZER

That macro is a nightmare. It leads to writing code that is
thread-unsafe or other problems. So rewrite the code that used this
macro to use special-purpose classes with constructors.

This commit does not introduce new errors. The FIXME in qicon.cpp
(qtIconCache()) was a condition already present. It does fix the race
conditions that were present in qbrush.cpp nullBrushInstance() and
qfontengine.cpp qt_grayPalette().

Specialising QGlobalStatic is also evil.

Change-Id: I039311f6a5ac9ea4ad7b310b870a2adf888da7e5
Merge-request: 10
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Reviewed-on: http://codereview.qt.nokia.com/1895
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
src/gui/image/qicon.cpp
src/gui/painting/qbrush.cpp
src/gui/painting/qpen.cpp
src/gui/text/qfontengine.cpp
src/opengl/qwindowsurface_gl.cpp