summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qstatictext.cpp
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-10-30 17:04:28 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-10-30 17:04:28 (GMT)
commitf9d30be978f5f7f0ebf0b240064268037f01ebd5 (patch)
treeb625b04cbf52e4e5b4b69c153ec1c541ab89de1f /src/gui/text/qstatictext.cpp
parent349b6c734aa7af85f3709312325c3b2e9abdad2b (diff)
parent3bee0c34590e6696d4477835aaa883e930903109 (diff)
downloadQt-f9d30be978f5f7f0ebf0b240064268037f01ebd5.zip
Qt-f9d30be978f5f7f0ebf0b240064268037f01ebd5.tar.gz
Qt-f9d30be978f5f7f0ebf0b240064268037f01ebd5.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: 32bit => 16bit conversion has 4byte-aligned output. Fix gcc bug in qReallocAligned Prevented threading related crash in OpenGL module. Fix possible crash in QStaticText and QDeclarativeTextLayout Fix QTBUG-14132 oracle (xe) stored procedures with bind variables get errors
Diffstat (limited to 'src/gui/text/qstatictext.cpp')
-rw-r--r--src/gui/text/qstatictext.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index 9506006..edf248a 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -445,7 +445,7 @@ namespace {
const QTextItemInt &ti = static_cast<const QTextItemInt &>(textItem);
QStaticTextItem currentItem;
- currentItem.fontEngine = ti.fontEngine;
+ currentItem.setFontEngine(ti.fontEngine);
currentItem.font = ti.font();
currentItem.charOffset = m_chars.size();
currentItem.numChars = ti.num_chars;
@@ -713,4 +713,24 @@ void QStaticTextPrivate::init()
needsRelayout = false;
}
+QStaticTextItem::~QStaticTextItem()
+{
+ if (m_userData != 0 && !m_userData->ref.deref())
+ delete m_userData;
+ if (!m_fontEngine->ref.deref())
+ delete m_fontEngine;
+}
+
+void QStaticTextItem::setFontEngine(QFontEngine *fe)
+{
+ if (m_fontEngine != 0) {
+ if (!m_fontEngine->ref.deref())
+ delete m_fontEngine;
+ }
+
+ m_fontEngine = fe;
+ if (m_fontEngine != 0)
+ m_fontEngine->ref.ref();
+}
+
QT_END_NAMESPACE