From: Michael Brasser Date: Thu, 1 Aug 2013 17:38:36 +0000 (-0500) Subject: Improve memory usage of QQuickTextNode. X-Git-Tag: upstream/5.2.1~677^2~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=40206588f941ad8eddf1235f0845aec43213c897;p=platform%2Fupstream%2Fqtdeclarative.git Improve memory usage of QQuickTextNode. The typical number of BinaryTreeNodes needed for a text line should be much lower than 256. Task-number: QTBUG-32770 Change-Id: I85aa161eb7cb6e55657213304b7577a0a33f1b67 Reviewed-by: Pierre Rossi Reviewed-by: Gunnar Sletta --- diff --git a/src/quick/items/qquicktextnodeengine.cpp b/src/quick/items/qquicktextnodeengine.cpp index 7bbfd1b..ce45063 100644 --- a/src/quick/items/qquicktextnodeengine.cpp +++ b/src/quick/items/qquicktextnodeengine.cpp @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE -void QQuickTextNodeEngine::BinaryTreeNode::insert(QVarLengthArray *binaryTree, const QGlyphRun &glyphRun, SelectionState selectionState, +void QQuickTextNodeEngine::BinaryTreeNode::insert(QVarLengthArray *binaryTree, const QGlyphRun &glyphRun, SelectionState selectionState, QQuickTextNode::Decorations decorations, const QColor &textColor, const QColor &backgroundColor, const QPointF &position) { @@ -78,7 +78,7 @@ void QQuickTextNodeEngine::BinaryTreeNode::insert(QVarLengthArray *binaryTree, const BinaryTreeNode &binaryTreeNode) +void QQuickTextNodeEngine::BinaryTreeNode::insert(QVarLengthArray *binaryTree, const BinaryTreeNode &binaryTreeNode) { int newIndex = binaryTree->size(); binaryTree->append(binaryTreeNode); @@ -106,7 +106,7 @@ void QQuickTextNodeEngine::BinaryTreeNode::insert(QVarLengthArray &binaryTree, +void QQuickTextNodeEngine::BinaryTreeNode::inOrder(const QVarLengthArray &binaryTree, QVarLengthArray *sortedIndexes, int currentIndex) { Q_ASSERT(currentIndex < binaryTree.size()); diff --git a/src/quick/items/qquicktextnodeengine_p.h b/src/quick/items/qquicktextnodeengine_p.h index 6a98d6b..9de71c6 100644 --- a/src/quick/items/qquicktextnodeengine_p.h +++ b/src/quick/items/qquicktextnodeengine_p.h @@ -103,13 +103,13 @@ public: int leftChildIndex; int rightChildIndex; - static void insert(QVarLengthArray *binaryTree, const QRectF &rect, const QImage &image, qreal ascent, SelectionState selectionState) + static void insert(QVarLengthArray *binaryTree, const QRectF &rect, const QImage &image, qreal ascent, SelectionState selectionState) { insert(binaryTree, BinaryTreeNode(rect, image, selectionState, ascent)); } - static void insert(QVarLengthArray *binaryTree, const QGlyphRun &glyphRun, SelectionState selectionState, + static void insert(QVarLengthArray *binaryTree, const QGlyphRun &glyphRun, SelectionState selectionState, QQuickTextNode::Decorations decorations, const QColor &textColor, const QColor &backgroundColor, const QPointF &position); - static void insert(QVarLengthArray *binaryTree, const BinaryTreeNode &binaryTreeNode); - static void inOrder(const QVarLengthArray &binaryTree, QVarLengthArray *sortedIndexes, int currentIndex = 0); + static void insert(QVarLengthArray *binaryTree, const BinaryTreeNode &binaryTreeNode); + static void inOrder(const QVarLengthArray &binaryTree, QVarLengthArray *sortedIndexes, int currentIndex = 0); }; QQuickTextNodeEngine() : m_hasSelection(false), m_hasContents(false) {} @@ -216,7 +216,7 @@ private: QList > m_backgrounds; QList m_selectionRects; - QVarLengthArray m_currentLineTree; + QVarLengthArray m_currentLineTree; QList m_lines; QVector m_processedNodes;