QString: Avoid searching for a needle which is longer than the hay

Avoid incurring the cost of converting the latin1 data in that case.

Several existing QString unit tests excercise the new code path.

Task-number: QTBUG-52617
Change-Id: I27256d9e7db34f09543e244a79d754ff7932f0d0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
bb10
Stephen Kelly 2016-04-18 23:27:12 +02:00
parent bbd1228b17
commit 9def501433
1 changed files with 3 additions and 0 deletions

View File

@ -10005,6 +10005,9 @@ static inline int qt_find_latin1_string(const QChar *haystack, int size,
QLatin1String needle,
int from, Qt::CaseSensitivity cs)
{
if (size < needle.size())
return -1;
const char *latin1 = needle.latin1();
int len = needle.size();
QVarLengthArray<ushort> s(len);