summaryrefslogtreecommitdiffstats
path: root/src/gui/text/qtextobject_p.h
diff options
context:
space:
mode:
authorBenjamin Poulain <benjamin.poulain@nokia.com>2009-03-26 12:40:18 (GMT)
committerSimon Hausmann <simon.hausmann@nokia.com>2009-03-26 12:40:52 (GMT)
commit2ba3cd8175e54a2e122591f12dacdeaa81a9af46 (patch)
treee4d714166eb2d016be65914b8d0d2c79a559ef9a /src/gui/text/qtextobject_p.h
parentb641daa11d579f58468be7f30042a100d8c483c5 (diff)
downloadQt-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.h15
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();