diff options
author | David Faure <david.faure@kdab.com> | 2017-02-20 10:55:59 +0100 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2017-02-23 18:11:55 +0000 |
commit | 90b48a70ffb64d97211150fa0849dc0fa0023b7d (patch) | |
tree | 1dc0532f52bf05799dba5d627a753777932f6cf2 /src/gui/text/qtextformat_p.h | |
parent | 8e9582847506bf17755415fdddd92c242407851c (diff) |
QTextFormatCollection: replace copy ctor and op= with clear()
operator=, which was only used for clearing, wasn't clearing the hash.
This led to a mismatch between the vector and the hash (given that the hash
points into the vector).
Spotted by interrupting kmail in gdb, and it was in this code
iterating over a 2000 entries hash (the first vector entries not matching
the hash, this code keep appending new entries for the same formats).
This fixes QTBUG-8862 again, the initial fix having been accidentally
reverted in 467b15a.
Change-Id: Ia34b3d002a0199e1930431a4bbdb2ec981ed4ffc
Task-number: QTBUG-8862
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/gui/text/qtextformat_p.h')
-rw-r--r-- | src/gui/text/qtextformat_p.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gui/text/qtextformat_p.h b/src/gui/text/qtextformat_p.h index f05bfaff71..3557c17a97 100644 --- a/src/gui/text/qtextformat_p.h +++ b/src/gui/text/qtextformat_p.h @@ -63,8 +63,7 @@ public: QTextFormatCollection() {} ~QTextFormatCollection(); - QTextFormatCollection(const QTextFormatCollection &rhs); - QTextFormatCollection &operator=(const QTextFormatCollection &rhs); + void clear(); inline QTextFormat objectFormat(int objectIndex) const { return format(objectFormatIndex(objectIndex)); } @@ -104,6 +103,8 @@ public: private: QFont defaultFnt; + + Q_DISABLE_COPY(QTextFormatCollection) }; QT_END_NAMESPACE |