Use QChar::fromUcs4() more

Change-Id: I02be41de92d84145186de9ac5f5ea3541a941964
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
bb10
Marc Mutz 2020-05-10 16:23:42 +02:00
parent 3aed50d488
commit b62bff2ef3
4 changed files with 9 additions and 7 deletions

View File

@ -333,7 +333,10 @@ _hb_qt_unicode_compose(hb_unicode_funcs_t * /*ufuncs*/,
void * /*user_data*/)
{
// ### optimize
QString s = QString::fromUcs4(&a, 1) + QString::fromUcs4(&b, 1);
QString s;
s.reserve(4);
s += QChar::fromUcs4(a);
s += QChar::fromUcs4(b);
QString normalized = s.normalized(QString::NormalizationForm_C);
QStringIterator it(normalized);

View File

@ -76,8 +76,7 @@ static QString keyString(int sym, QChar::Category category)
} else if (category == QChar::Other_PrivateUse) {
return keyStringForPrivateUseQnxKey(sym);
} else {
uint ucs4_sym = sym;
return QString::fromUcs4(&ucs4_sym, 1);
return QStringView{QChar::fromUcs4(sym)}.toString();
}
}

View File

@ -149,9 +149,9 @@ void loadNonCharactersRows()
char(0x80 | (uchar(ucs4 >> 6) & 0x3f)),
char(0x80 | (uchar(ucs4) & 0x3f)),
0 };
ushort utf16[] = { QChar::highSurrogate(ucs4), QChar::lowSurrogate(ucs4), 0 };
const auto utf16 = QChar::fromUcs4(ucs4);
QTest::newRow(qPrintable(QString::number(ucs4, 16))) << QByteArray(utf8) << QString::fromUtf16(utf16);
QTest::newRow(qPrintable(QString::number(ucs4, 16))) << QByteArray(utf8) << QStringView{utf16}.toString();
}
}

View File

@ -203,7 +203,7 @@ void tst_QStringIterator::sweep()
if (codePoint == ~0u)
rebuiltString += *(i.position() - 1);
else
rebuiltString += QString::fromUcs4(&codePoint, 1);
rebuiltString += QChar::fromUcs4(codePoint);
++count;
}
@ -244,7 +244,7 @@ void tst_QStringIterator::sweep()
QVERIFY(peekedCodePoint == codePoint);
QVERIFY(codePoint <= 0x10FFFFu);
rebuiltString += QString::fromUcs4(&codePoint, 1);
rebuiltString += QChar::fromUcs4(codePoint);
++count;
}