diff options
author | Marc Mutz <marc.mutz@kdab.com> | 2017-02-06 10:14:29 +0100 |
---|---|---|
committer | Marc Mutz <marc.mutz@kdab.com> | 2017-02-13 08:42:46 +0000 |
commit | 0d2791c5f64fcb7f0ce4c2027d78fc39de514ab4 (patch) | |
tree | 8467804af94f271b6ce4a19e78548952430f59cf /src/corelib | |
parent | a85b4d79db5c11f5a309fbbc52e80a81096c0f01 (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.cpp | 2 | ||||
-rw-r--r-- | src/corelib/tools/qcollator_macx.cpp | 2 | ||||
-rw-r--r-- | src/corelib/tools/qcollator_p.h | 5 | ||||
-rw-r--r-- | src/corelib/tools/qcollator_posix.cpp | 2 | ||||
-rw-r--r-- | src/corelib/tools/qcollator_win.cpp | 2 |
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 |