diff options
author | Anton Kudryavtsev <anton.kudryavtsev@corp.mail.ru> | 2018-01-17 20:28:06 +0300 |
---|---|---|
committer | Anton Kudryavtsev <antkudr@mail.ru> | 2018-02-15 18:00:11 +0000 |
commit | 0fb8271a467202990c90321066e40faed640a7a8 (patch) | |
tree | bf0e7dcd7e1cd13f6604588f3f51e5ec8202bee7 /src/gui/text/qtextlayout.cpp | |
parent | 47904bb08aeb5dc63c78357aba6003460a65d4b3 (diff) |
QTextEngine: micro optimize insertionPointsForLine
Don't use out param, use return by value instead.
Also since we don't need CoW replace QVector with std::vector
Change-Id: I5b6ea286b83e2ab959b5734cc1af31cc63c06553
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/gui/text/qtextlayout.cpp')
-rw-r--r-- | src/gui/text/qtextlayout.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp index 71d7157032..5afe18751f 100644 --- a/src/gui/text/qtextlayout.cpp +++ b/src/gui/text/qtextlayout.cpp @@ -2840,9 +2840,7 @@ int QTextLine::xToCursor(qreal _x, CursorPosition cpos) const bool rtl = eng->isRightToLeft(); eng->shapeLine(line); - QVector<int> insertionPoints; - if (visual && rtl) - eng->insertionPointsForLine(lineNum, insertionPoints); + const auto insertionPoints = (visual && rtl) ? eng->insertionPointsForLine(lineNum) : std::vector<int>(); int nchars = 0; for (int i = 0; i < nItems; ++i) { int item = visualOrder[i]+firstItem; @@ -2974,7 +2972,7 @@ int QTextLine::xToCursor(qreal _x, CursorPosition cpos) const continue; } if (rtl && nchars > 0) - return insertionPoints[lastLine ? nchars : nchars - 1]; + return insertionPoints[size_t(lastLine ? nchars : nchars - 1)]; } return eng->positionInLigature(&si, end, x, pos, -1, cpos == QTextLine::CursorOnCharacter); |