diff options
author | Benjamin Poulain <benjamin.poulain@nokia.com> | 2009-03-26 12:40:18 (GMT) |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2009-03-26 12:40:52 (GMT) |
commit | 2ba3cd8175e54a2e122591f12dacdeaa81a9af46 (patch) | |
tree | e4d714166eb2d016be65914b8d0d2c79a559ef9a /src/gui/text/qtextobject_p.h | |
parent | b641daa11d579f58468be7f30042a100d8c483c5 (diff) | |
download | Qt-2ba3cd8175e54a2e122591f12dacdeaa81a9af46.zip Qt-2ba3cd8175e54a2e122591f12dacdeaa81a9af46.tar.gz Qt-2ba3cd8175e54a2e122591f12dacdeaa81a9af46.tar.bz2 |
Fix crash when accessing newly constructed QTextObjects.
The pieceTable member was only initialized by QTextDocumentPrivate
_after_ the call to createObject. This patch initializes it at
construction time.
Task-number: 246138
Reviewed-by: Simon Hausmann
Diffstat (limited to 'src/gui/text/qtextobject_p.h')
-rw-r--r-- | src/gui/text/qtextobject_p.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gui/text/qtextobject_p.h b/src/gui/text/qtextobject_p.h index b00a16a..dd05eb4 100644 --- a/src/gui/text/qtextobject_p.h +++ b/src/gui/text/qtextobject_p.h @@ -55,6 +55,7 @@ #include "QtGui/qtextobject.h" #include "private/qobject_p.h" +#include "QtGui/qtextdocument.h" QT_BEGIN_NAMESPACE @@ -64,6 +65,10 @@ class QTextObjectPrivate : public QObjectPrivate { Q_DECLARE_PUBLIC(QTextObject) public: + QTextObjectPrivate(QTextDocument *doc) + : pieceTable(doc->d_func()), objectIndex(-1) + { + } QTextDocumentPrivate *pieceTable; int objectIndex; }; @@ -72,7 +77,10 @@ class QTextBlockGroupPrivate : public QTextObjectPrivate { Q_DECLARE_PUBLIC(QTextBlockGroup) public: - + QTextBlockGroupPrivate(QTextDocument *doc) + : QTextObjectPrivate(doc) + { + } typedef QList<QTextBlock> BlockList; BlockList blocks; void markBlocksDirty(); @@ -85,7 +93,10 @@ class QTextFramePrivate : public QTextObjectPrivate friend class QTextDocumentPrivate; Q_DECLARE_PUBLIC(QTextFrame) public: - + QTextFramePrivate(QTextDocument *doc) + : QTextObjectPrivate(doc) + { + } virtual void fragmentAdded(const QChar &type, uint fragment); virtual void fragmentRemoved(const QChar &type, uint fragment); void remove_me(); |