summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJędrzej Nowacki <jedrzej.nowacki@digia.com>2012-11-02 13:59:04 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-11-03 11:20:26 +0100
commitfb0f58f50f30116fc72ca0e8d0fbea1331052c22 (patch)
tree8fe7dedfa9c87ff0917a51d60a276dee3964d6b2 /src
parent8fb379dc8a4d7069a99c3181283e581b86e99ceb (diff)
Fix conditional jump based on an uninitialized variable.
Valgrind warns about the jump in qfontconfigdatabase.cpp:522 based on uint QFondDef::hintingPreference:2 property. Surprising thing is that the property is initialized in the default constructor, so there should not be an issue. The warning disappear if the property is _not_ placed on a boundary of a two words, or if bit field is fully initialized. So I suspect that only one bit of the two was initialized properly. I decide to implement both solutions because of a potential minor performance improvement, during reading the property. I still fail to say why the value was uninitialized, I believe that this patch simply workarounds gcc bug or valgrind bug. Change-Id: I2e87738f66a435ef6e30b3d2db6baa73da025426 Reviewed-by: Jiang Jiang <gzjjgod@gmail.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/gui/text/qfont_p.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gui/text/qfont_p.h b/src/gui/text/qfont_p.h
index 2a37b56d87..ad8ba0758f 100644
--- a/src/gui/text/qfont_p.h
+++ b/src/gui/text/qfont_p.h
@@ -73,7 +73,8 @@ struct QFontDef
: pointSize(-1.0), pixelSize(-1),
styleStrategy(QFont::PreferDefault), styleHint(QFont::AnyStyle),
weight(50), fixedPitch(false), style(QFont::StyleNormal), stretch(100),
- ignorePitch(true), hintingPreference(QFont::PreferDefaultHinting)
+ hintingPreference(QFont::PreferDefaultHinting), ignorePitch(true),
+ fixedPitchComputed(0), reserved(0)
{
}
@@ -93,8 +94,8 @@ struct QFontDef
uint style : 2;
uint stretch : 12; // 0-400
- uint ignorePitch : 1;
uint hintingPreference : 2;
+ uint ignorePitch : 1;
uint fixedPitchComputed : 1; // for Mac OS X only
int reserved : 14; // for future extensions