qt6-bb10/tests/auto/corelib/text
Ahmad Samir d9637d0781 QString: don't detach in removeStringImpl()
- If this string is not shared, modify it directly
- If this string is shared, instead of detaching copy the characters
  from this string, except the ones that are going to be removed, to a
  new string and swap it. This is more efficient than detaching, which
  would copy the whole string including the characters that are going
  to be removed.

This affects:
remove(const QString &str, Qt::CaseSensitivity cs)
remove(QLatin1StringView str, Qt::CaseSensitivity cs)

Adjust the unittests to test both code paths.

[ChangeLog][QtCore][QString] Improved the performance of
QString::remove() by avoiding unnecessary data copying. Now, if this
string is (implicitly) shared with another, instead of copying
everything and then removing what we don't want, the characters from
this string are copied to the destination, except the ones that need to
be removed.

Task-number: QTBUG-106181
Change-Id: Id8eba59a44bab641cc8aa662eb45063faf201183
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2022-11-17 02:15:28 +00:00
..
qanystringview QAnyStringView: construct from any T implicitly convertible to QString/QByteArray 2022-09-01 15:51:48 +02:00
qbytearray QString, QByteArray: add removeAt/First/Last() convenience methods 2022-11-16 18:25:35 +02:00
qbytearray_large QByteArray: move the high-memory-using and slot tests away 2022-11-05 11:15:40 -07:00
qbytearrayapisymmetry tst_QBAApiSymmetry::toInt_data(): deduplicate a data-row name 2022-10-11 11:24:01 +02:00
qbytearraylist Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qbytearraymatcher Port from container.count()/length() to size() 2022-10-04 07:40:08 +02:00
qbytearrayview Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qbytedatabuffer Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qchar tst_QChar::fromUcs4(): deduplicate a test-case 2022-10-18 14:13:28 +02:00
qcollator Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qlatin1stringview QtBase tests: remove QT_DISABLE_DEPRECATED_UP_TO defines 2022-08-24 22:08:49 +02:00
qlocale Add more tests of QLocale and "single character" data that aren't 2022-11-11 16:32:53 +01:00
qregularexpression tst_QRE::wildcard(): use more informative data row tags 2022-10-11 11:24:11 +02:00
qstring QString: don't detach in removeStringImpl() 2022-11-17 02:15:28 +00:00
qstring_no_cast_from_bytearray Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qstringapisymmetry MSVC: Disable buggy conformance check 2022-10-18 19:31:25 +08:00
qstringbuilder Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qstringconverter Long live QUtf8::convertFromLatin1()! 2022-11-02 17:21:28 +01:00
qstringiterator Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qstringlist Port from container::count() and length() to size() - V5 2022-11-03 14:59:24 +01:00
qstringmatcher Reduce foldCasing of the needle in Boyer-Moore QString searches 2022-09-22 18:05:44 +02:00
qstringtokenizer Change the license of all CMakeLists.txt and *.cmake files to BSD 2022-08-23 23:58:42 +02:00
qstringview Port from qAsConst() to std::as_const() 2022-10-11 23:17:18 +02:00
qtextboundaryfinder Update UCD to Revision 30 2022-10-11 14:10:59 +00:00
qunicodetools Port from container::count() and length() to size() - V5 2022-11-03 14:59:24 +01:00
shared Provide optTitle for a NumberDoubleTestData testcase that needs it 2022-10-11 11:21:38 +02:00
CMakeLists.txt QByteArray: move the high-memory-using and slot tests away 2022-11-05 11:15:40 -07:00