summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Gaist <samuel.gaist@edeltech.ch>2017-01-30 00:04:08 +0100
committerSamuel Gaist <samuel.gaist@edeltech.ch>2017-12-30 23:34:00 +0000
commit2b0eb3fac319a17dd92903106d501f0f06df871f (patch)
tree3940fbe64c9a56c6a00adc779101708b66b7a07e
parent83aca24bc4941d1be48719250e64a30a785d1c07 (diff)
Remove use of QRegExp from QSharedMemory
This patch updates the code from QSharedMemory to remove the use of the deprecated QRegExp class. It also updates the unique key test to avoid change of behavior going undetected. Change-Id: I649e615027507898800bb5454a62a6cf8bbb2e18 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r--src/corelib/kernel/qsharedmemory.cpp8
-rw-r--r--tests/auto/corelib/kernel/qsharedmemory/test/tst_qsharedmemory.cpp1
2 files changed, 6 insertions, 3 deletions
diff --git a/src/corelib/kernel/qsharedmemory.cpp b/src/corelib/kernel/qsharedmemory.cpp
index c8ba13c90c..c952655cb8 100644
--- a/src/corelib/kernel/qsharedmemory.cpp
+++ b/src/corelib/kernel/qsharedmemory.cpp
@@ -67,9 +67,11 @@ QSharedMemoryPrivate::makePlatformSafeKey(const QString &key,
QString result = prefix;
- QString part1 = key;
- part1.replace(QRegExp(QLatin1String("[^A-Za-z]")), QString());
- result.append(part1);
+ for (QChar ch : key) {
+ if ((ch >= QLatin1Char('a') && ch <= QLatin1Char('z')) ||
+ (ch >= QLatin1Char('A') && ch <= QLatin1Char('Z')))
+ result += ch;
+ }
QByteArray hex = QCryptographicHash::hash(key.toUtf8(), QCryptographicHash::Sha1).toHex();
result.append(QLatin1String(hex));
diff --git a/tests/auto/corelib/kernel/qsharedmemory/test/tst_qsharedmemory.cpp b/tests/auto/corelib/kernel/qsharedmemory/test/tst_qsharedmemory.cpp
index 3b25000b22..f81324b894 100644
--- a/tests/auto/corelib/kernel/qsharedmemory/test/tst_qsharedmemory.cpp
+++ b/tests/auto/corelib/kernel/qsharedmemory/test/tst_qsharedmemory.cpp
@@ -815,6 +815,7 @@ void tst_QSharedMemory::uniqueKey_data()
QTest::newRow("key != key1") << QString("key") << QString("key1");
QTest::newRow("ke1y != key1") << QString("ke1y") << QString("key1");
QTest::newRow("key1 != key2") << QString("key1") << QString("key2");
+ QTest::newRow("Noël -> Nol") << QString::fromUtf8("N\xc3\xabl") << QString("Nol");
}
void tst_QSharedMemory::uniqueKey()