summaryrefslogtreecommitdiffstats
path: root/src/gui/text
diff options
context:
space:
mode:
authorAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-03-31 17:34:32 +0300
committerAnton Kudryavtsev <a.kudryavtsev@netris.ru>2016-06-02 12:57:42 +0000
commit6030e63037cdc09d43ad372ecbcfeece72b6e353 (patch)
tree3a0fafeb111cbcd928a04233a1c42f1ab455de64 /src/gui/text
parent90988a2c6713e41937241e0848043a2e28973d68 (diff)
QtGui: use QStringRef to optimize memory allocation
Replace substring functions that return QString with corresponding functions that return QStringRef where it's possible. Create QString from QStringRef only where necessary. Change-Id: Id83c60cc7568b20ef008b51c582cfdf466a47e35 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/gui/text')
-rw-r--r--src/gui/text/qcssparser.cpp7
-rw-r--r--src/gui/text/qfont.cpp4
-rw-r--r--src/gui/text/qfontdatabase.cpp6
3 files changed, 8 insertions, 9 deletions
diff --git a/src/gui/text/qcssparser.cpp b/src/gui/text/qcssparser.cpp
index d455a74d96..c237d80d34 100644
--- a/src/gui/text/qcssparser.cpp
+++ b/src/gui/text/qcssparser.cpp
@@ -1510,7 +1510,7 @@ QRect Declaration::rectValue() const
const QStringList func = v.variant.toStringList();
if (func.count() != 2 || func.at(0).compare(QLatin1String("rect")) != 0)
return QRect();
- QStringList args = func[1].split(QLatin1Char(' '), QString::SkipEmptyParts);
+ const auto args = func[1].splitRef(QLatin1Char(' '), QString::SkipEmptyParts);
if (args.count() != 4)
return QRect();
QRect rect(args[0].toInt(), args[1].toInt(), args[2].toInt(), args[3].toInt());
@@ -1915,9 +1915,8 @@ bool StyleSelector::basicSelectorMatches(const BasicSelector &sel, NodePtr node)
return false;
if (a.valueMatchCriterium == QCss::AttributeSelector::MatchContains) {
-
- QStringList lst = attrValue.split(QLatin1Char(' '));
- if (!lst.contains(a.value))
+ const auto lst = attrValue.splitRef(QLatin1Char(' '));
+ if (!lst.contains(QStringRef(&a.value)))
return false;
} else if (
(a.valueMatchCriterium == QCss::AttributeSelector::MatchEqual
diff --git a/src/gui/text/qfont.cpp b/src/gui/text/qfont.cpp
index f92e4ab457..828dbc318c 100644
--- a/src/gui/text/qfont.cpp
+++ b/src/gui/text/qfont.cpp
@@ -2033,7 +2033,7 @@ uint qHash(const QFont &font, uint seed) Q_DECL_NOTHROW
*/
bool QFont::fromString(const QString &descrip)
{
- QStringList l(descrip.split(QLatin1Char(',')));
+ const auto l = descrip.splitRef(QLatin1Char(','));
int count = l.count();
if (!count || (count > 2 && count < 9) || count > 11) {
@@ -2042,7 +2042,7 @@ bool QFont::fromString(const QString &descrip)
return false;
}
- setFamily(l[0]);
+ setFamily(l[0].toString());
if (count > 1 && l[1].toDouble() > 0.0)
setPointSizeF(l[1].toDouble());
if (count == 9) {
diff --git a/src/gui/text/qfontdatabase.cpp b/src/gui/text/qfontdatabase.cpp
index 359c461ad3..9b50581bea 100644
--- a/src/gui/text/qfontdatabase.cpp
+++ b/src/gui/text/qfontdatabase.cpp
@@ -697,15 +697,15 @@ static QStringList familyList(const QFontDef &req)
if (req.family.isEmpty())
return family_list;
- QStringList list = req.family.split(QLatin1Char(','));
+ const auto list = req.family.splitRef(QLatin1Char(','));
const int numFamilies = list.size();
family_list.reserve(numFamilies);
for (int i = 0; i < numFamilies; ++i) {
- QString str = list.at(i).trimmed();
+ QStringRef str = list.at(i).trimmed();
if ((str.startsWith(QLatin1Char('"')) && str.endsWith(QLatin1Char('"')))
|| (str.startsWith(QLatin1Char('\'')) && str.endsWith(QLatin1Char('\''))))
str = str.mid(1, str.length() - 2);
- family_list << str;
+ family_list << str.toString();
}
// append the substitute list for each family in family_list