summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorMarc Mutz <marc.mutz@kdab.com>2017-02-06 10:14:29 +0100
committerMarc Mutz <marc.mutz@kdab.com>2017-02-13 08:42:46 +0000
commit0d2791c5f64fcb7f0ce4c2027d78fc39de514ab4 (patch)
tree8467804af94f271b6ce4a19e78548952430f59cf /src/corelib
parenta85b4d79db5c11f5a309fbbc52e80a81096c0f01 (diff)
QCollatorSortKey: add some std::move
All implementations of QCollator::sortKey() can benefit from moving their CollatorKeyType into the QCollatorSortKeyPrivate on construction. So make the QCollatorSortKeyPrivate ctor a perfect forwarder for its m_key member, and add std::move() calls where they were missing (in all but one case, lvalues were passed). Make the ctor explicit, as it should have been from the beginning. Change-Id: I2a1cdda5fd23990ace019b963df895c621a1fa85 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/tools/qcollator_icu.cpp2
-rw-r--r--src/corelib/tools/qcollator_macx.cpp2
-rw-r--r--src/corelib/tools/qcollator_p.h5
-rw-r--r--src/corelib/tools/qcollator_posix.cpp2
-rw-r--r--src/corelib/tools/qcollator_win.cpp2
5 files changed, 7 insertions, 6 deletions
diff --git a/src/corelib/tools/qcollator_icu.cpp b/src/corelib/tools/qcollator_icu.cpp
index 26e2121092..ad98a187c5 100644
--- a/src/corelib/tools/qcollator_icu.cpp
+++ b/src/corelib/tools/qcollator_icu.cpp
@@ -145,7 +145,7 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const
string.size(), (uint8_t *)result.data(), result.size());
}
result.truncate(size);
- return QCollatorSortKey(new QCollatorSortKeyPrivate(result));
+ return QCollatorSortKey(new QCollatorSortKeyPrivate(std::move(result)));
}
return QCollatorSortKey(new QCollatorSortKeyPrivate(QByteArray()));
diff --git a/src/corelib/tools/qcollator_macx.cpp b/src/corelib/tools/qcollator_macx.cpp
index c4eb8e6978..d468272430 100644
--- a/src/corelib/tools/qcollator_macx.cpp
+++ b/src/corelib/tools/qcollator_macx.cpp
@@ -131,7 +131,7 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const
ret.size(), &actualSize, ret.data());
}
ret[actualSize] = 0;
- return QCollatorSortKey(new QCollatorSortKeyPrivate(ret));
+ return QCollatorSortKey(new QCollatorSortKeyPrivate(std::move(ret)));
}
int QCollatorSortKey::compare(const QCollatorSortKey &key) const
diff --git a/src/corelib/tools/qcollator_p.h b/src/corelib/tools/qcollator_p.h
index 6ac79e820d..c03a3431db 100644
--- a/src/corelib/tools/qcollator_p.h
+++ b/src/corelib/tools/qcollator_p.h
@@ -131,9 +131,10 @@ class QCollatorSortKeyPrivate : public QSharedData
{
friend class QCollator;
public:
- QCollatorSortKeyPrivate(const CollatorKeyType &key)
+ template <typename...T>
+ explicit QCollatorSortKeyPrivate(T &&...args)
: QSharedData()
- , m_key(key)
+ , m_key(std::forward<T>(args)...)
{
}
diff --git a/src/corelib/tools/qcollator_posix.cpp b/src/corelib/tools/qcollator_posix.cpp
index da424970e6..42413a4a82 100644
--- a/src/corelib/tools/qcollator_posix.cpp
+++ b/src/corelib/tools/qcollator_posix.cpp
@@ -110,7 +110,7 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const
}
result.resize(size+1);
result[size] = 0;
- return QCollatorSortKey(new QCollatorSortKeyPrivate(result));
+ return QCollatorSortKey(new QCollatorSortKeyPrivate(std::move(result)));
}
int QCollatorSortKey::compare(const QCollatorSortKey &otherKey) const
diff --git a/src/corelib/tools/qcollator_win.cpp b/src/corelib/tools/qcollator_win.cpp
index 44beaeaf75..bce896278e 100644
--- a/src/corelib/tools/qcollator_win.cpp
+++ b/src/corelib/tools/qcollator_win.cpp
@@ -147,7 +147,7 @@ QCollatorSortKey QCollator::sortKey(const QString &string) const
if (finalSize == 0) {
qWarning() << "there were problems when generating the ::sortKey by LCMapStringW with error:" << GetLastError();
}
- return QCollatorSortKey(new QCollatorSortKeyPrivate(ret));
+ return QCollatorSortKey(new QCollatorSortKeyPrivate(std::move(ret)));
}
int QCollatorSortKey::compare(const QCollatorSortKey &otherKey) const