summaryrefslogtreecommitdiffstats
path: root/src/gui/text
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-06-16 22:58:16 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-06-16 22:58:16 (GMT)
commitcae83b15d35c17daebecdc99acf34c55bce1a6c3 (patch)
tree6807c5710563b317b02b6fe17d87f0d5edd22372 /src/gui/text
parent30c8d1e3dccc83499ac3d76284cfb2e8d860808a (diff)
parentdf3883b1dae79598e7d5f6b470c876de9cfc8bf2 (diff)
downloadQt-cae83b15d35c17daebecdc99acf34c55bce1a6c3.zip
Qt-cae83b15d35c17daebecdc99acf34c55bce1a6c3.tar.gz
Qt-cae83b15d35c17daebecdc99acf34c55bce1a6c3.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: doc: Added more DITA output to the XML generator Defer allocation of GIF decoding tables/stack. Make sure only started gestures can cause cancellations Updated JavaScriptCore from /home/khansen/dev/qtwebkit-qtscript-integration to javascriptcore-snapshot-16062010 ( 8b2d3443afca194f8ac50a63151dc9d19a150582 ) qmake: Fix CONFIG += exceptions_off with the MSVC project generator. Fix some kind of race condition while using remote commands. Work around ICE in Intel C++ Compiler 11.1.072 Reduce the memory consumption of QtFontStyle
Diffstat (limited to 'src/gui/text')
-rw-r--r--src/gui/text/qfontdatabase.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index ff29462..4c058ce 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -145,18 +145,18 @@ struct QtFontEncoding
struct QtFontSize
{
- unsigned short pixelSize;
-
#ifdef Q_WS_X11
- int count;
QtFontEncoding *encodings;
QtFontEncoding *encodingID(int id, uint xpoint = 0, uint xres = 0,
uint yres = 0, uint avgwidth = 0, bool add = false);
+ unsigned short count : 16;
#endif // Q_WS_X11
#if defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
QByteArray fileName;
int fileIndex;
#endif // defined(Q_WS_QWS) || defined(Q_OS_SYMBIAN)
+
+ unsigned short pixelSize : 16;
};
@@ -284,7 +284,12 @@ QtFontSize *QtFontStyle::pixelSize(unsigned short size, bool add)
if (!add)
return 0;
- if (!(count % 8)) {
+ if (!pixelSizes) {
+ // Most style have only one font size, we avoid waisting memory
+ QtFontSize *newPixelSizes = (QtFontSize *)malloc(sizeof(QtFontSize));
+ Q_CHECK_PTR(newPixelSizes);
+ pixelSizes = newPixelSizes;
+ } else if (!(count % 8)) {
QtFontSize *newPixelSizes = (QtFontSize *)
realloc(pixelSizes,
(((count+8) >> 3) << 3) * sizeof(QtFontSize));