qcore_mac_p.h: compile-optimize inline swap functions

Instead of using the overly-generic qSwap() monster, use

- qt_ptr_swap() for swapping raw pointers
- member-swap for swapping smart pointers
- std::swap() for swapping scalars

In QtCore, this has proven to give a nice reduction in compile time
for Qt users, cf. b1b0c2970e480ef460a61f37fa430dc443390358.

Task-number: QTBUG-97601
Change-Id: Iad8e6c11ebcc3ff822479c36f5faff88992b1165
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit e08fa9cc01f11ce61258e0d9a138118bff3453c8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Marc Mutz 2022-03-15 21:20:46 +01:00 committed by Qt Cherry-pick Bot
parent 0d140753c3
commit 41dc4fcdb8

View File

@ -275,8 +275,8 @@ public:
void swap(QAppleLogActivity &other) void swap(QAppleLogActivity &other)
{ {
qSwap(activity, other.activity); activity.swap(other.activity);
qSwap(state, other.state); std::swap(state, other.state);
} }
private: private:
@ -333,7 +333,7 @@ public:
void swap(QMacNotificationObserver &other) noexcept void swap(QMacNotificationObserver &other) noexcept
{ {
qSwap(observer, other.observer); qt_ptr_swap(observer, other.observer);
} }
void remove(); void remove();
@ -383,9 +383,9 @@ public:
void swap(QMacKeyValueObserver &other) noexcept void swap(QMacKeyValueObserver &other) noexcept
{ {
qSwap(object, other.object); qt_ptr_swap(object, other.object);
qSwap(keyPath, other.keyPath); qt_ptr_swap(keyPath, other.keyPath);
qSwap(callback, other.callback); callback.swap(other.callback);
} }
private: private: