diff options
author | Anton Kudryavtsev <anton.kudryavtsev@vk.team> | 2023-10-13 15:39:08 +0300 |
---|---|---|
committer | Anton Kudryavtsev <anton.kudryavtsev@vk.team> | 2023-10-25 19:53:14 +0300 |
commit | 621f7c87357abf3645f30ecad9e730bb69765287 (patch) | |
tree | 5567f2c902e5361e2f24fa5a9b7df4de170b32d4 | |
parent | 1427aa6711c260b532919b239d8a0fdba4262735 (diff) |
qtextengine: replace qlist with qvla
CoW is not required here
Change-Id: Ia0d55dd1e82a225e089ca50f0d3c72bfb52d44f4
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
-rw-r--r-- | src/gui/text/qtextengine.cpp | 19 | ||||
-rw-r--r-- | src/gui/text/qtextengine_p.h | 3 |
2 files changed, 11 insertions, 11 deletions
diff --git a/src/gui/text/qtextengine.cpp b/src/gui/text/qtextengine.cpp index 3ca932d34f..17f0159da9 100644 --- a/src/gui/text/qtextengine.cpp +++ b/src/gui/text/qtextengine.cpp @@ -1434,8 +1434,7 @@ void QTextEngine::shapeText(int item) const // split up the item into parts that come from different font engines // k * 3 entries, array[k] == index in string, array[k + 1] == index in glyphs, array[k + 2] == engine index - QList<uint> itemBoundaries; - itemBoundaries.reserve(24); + QVarLengthArray<uint, 24> itemBoundaries; QGlyphLayout initialGlyphs = availableGlyphs(&si); int nGlyphs = initialGlyphs.numGlyphs; @@ -1455,9 +1454,9 @@ void QTextEngine::shapeText(int item) const for (int i = 0, glyph_pos = 0; i < itemLength; ++i, ++glyph_pos) { const uint engineIdx = initialGlyphs.glyphs[glyph_pos] >> 24; if (lastEngine != engineIdx) { - itemBoundaries.append(i); - itemBoundaries.append(glyph_pos); - itemBoundaries.append(engineIdx); + itemBoundaries.push_back(i); + itemBoundaries.push_back(glyph_pos); + itemBoundaries.push_back(engineIdx); if (engineIdx != 0) { QFontEngine *actualFontEngine = static_cast<QFontEngineMulti *>(fontEngine)->engine(engineIdx); @@ -1473,9 +1472,9 @@ void QTextEngine::shapeText(int item) const ++i; } } else { - itemBoundaries.append(0); - itemBoundaries.append(0); - itemBoundaries.append(0); + itemBoundaries.push_back(0); + itemBoundaries.push_back(0); + itemBoundaries.push_back(0); } #if QT_CONFIG(harfbuzz) @@ -1597,7 +1596,7 @@ int QTextEngine::shapeTextWithHarfbuzzNG(const QScriptItem &si, const ushort *string, int itemLength, QFontEngine *fontEngine, - const QList<uint> &itemBoundaries, + QSpan<uint> itemBoundaries, bool kerningEnabled, bool hasLetterSpacing, const QHash<QFont::Tag, quint32> &fontFeatures) const @@ -1619,7 +1618,7 @@ int QTextEngine::shapeTextWithHarfbuzzNG(const QScriptItem &si, // ### TODO get_default_for_script? props.language = hb_language_get_default(); // use default language from locale - for (int k = 0; k < itemBoundaries.size(); k += 3) { + for (qsizetype k = 0; k < itemBoundaries.size(); k += 3) { const uint item_pos = itemBoundaries[k]; const uint item_length = (k + 4 < itemBoundaries.size() ? itemBoundaries[k + 3] : itemLength) - item_pos; const uint engineIdx = itemBoundaries[k + 2]; diff --git a/src/gui/text/qtextengine_p.h b/src/gui/text/qtextengine_p.h index f2bfaee5a9..b041817d7c 100644 --- a/src/gui/text/qtextengine_p.h +++ b/src/gui/text/qtextengine_p.h @@ -33,6 +33,7 @@ #include "private/qfont_p.h" #include "private/qtextformat_p.h" #include "private/qunicodetools_p.h" +#include "private/qspan_p.h" #ifndef QT_BUILD_COMPAT_LIB #include "private/qtextdocument_p.h" #endif @@ -625,7 +626,7 @@ private: const ushort *string, int itemLength, QFontEngine *fontEngine, - const QList<uint> &itemBoundaries, + QSpan<uint> itemBoundaries, bool kerningEnabled, bool hasLetterSpacing, const QHash<QFont::Tag, quint32> &features) const; |