From bd4506fe5be0616c1d1f4cac94bb7399dc2072c2 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 28 Sep 2017 14:19:59 -0700 Subject: Remove Q_ALWAYS_INLINE from frequently-used functions MSVC is too stupid for them. Not only will it not inline those functions if they are in a __declspec(dllimport) class, it will also print an annoying Level 4 warning: function 'function' marked as __forceinline not inlined Task-number: QTBUG-57811 Task-number: QTBUG-55042 Change-Id: I0b48fc8e90304e0dacc3fffd14e8a346d18a9e0c Reviewed-by: Kai Koehne Reviewed-by: Friedemann Kleint --- src/corelib/kernel/qtimer.h | 6 ------ src/corelib/tools/qbytearray.h | 16 ++++++++-------- src/corelib/tools/qstring.h | 20 ++++++++++---------- 3 files changed, 18 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/corelib/kernel/qtimer.h b/src/corelib/kernel/qtimer.h index 7db5fc759b..44ae04f38d 100644 --- a/src/corelib/kernel/qtimer.h +++ b/src/corelib/kernel/qtimer.h @@ -165,37 +165,31 @@ Q_SIGNALS: public: #if QT_HAS_INCLUDE() || defined(Q_QDOC) - Q_ALWAYS_INLINE void setInterval(std::chrono::milliseconds value) { setInterval(int(value.count())); } - Q_ALWAYS_INLINE std::chrono::milliseconds intervalAsDuration() const { return std::chrono::milliseconds(interval()); } - Q_ALWAYS_INLINE std::chrono::milliseconds remainingTimeAsDuration() const { return std::chrono::milliseconds(remainingTime()); } - Q_ALWAYS_INLINE static void singleShot(std::chrono::milliseconds value, const QObject *receiver, const char *member) { singleShot(int(value.count()), receiver, member); } - Q_ALWAYS_INLINE static void singleShot(std::chrono::milliseconds value, Qt::TimerType timerType, const QObject *receiver, const char *member) { singleShot(int(value.count()), timerType, receiver, member); } - Q_ALWAYS_INLINE void start(std::chrono::milliseconds value) { start(int(value.count())); diff --git a/src/corelib/tools/qbytearray.h b/src/corelib/tools/qbytearray.h index 9a600ca366..732d3afc17 100644 --- a/src/corelib/tools/qbytearray.h +++ b/src/corelib/tools/qbytearray.h @@ -256,21 +256,21 @@ public: # define Q_REQUIRED_RESULT # define Q_REQUIRED_RESULT_pushed # endif - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray toLower() const & + Q_REQUIRED_RESULT QByteArray toLower() const & { return toLower_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray toLower() && + Q_REQUIRED_RESULT QByteArray toLower() && { return toLower_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray toUpper() const & + Q_REQUIRED_RESULT QByteArray toUpper() const & { return toUpper_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray toUpper() && + Q_REQUIRED_RESULT QByteArray toUpper() && { return toUpper_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray trimmed() const & + Q_REQUIRED_RESULT QByteArray trimmed() const & { return trimmed_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray trimmed() && + Q_REQUIRED_RESULT QByteArray trimmed() && { return trimmed_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray simplified() const & + Q_REQUIRED_RESULT QByteArray simplified() const & { return simplified_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QByteArray simplified() && + Q_REQUIRED_RESULT QByteArray simplified() && { return simplified_helper(*this); } # ifdef Q_REQUIRED_RESULT_pushed # pragma pop_macro("Q_REQUIRED_RESULT") diff --git a/src/corelib/tools/qstring.h b/src/corelib/tools/qstring.h index 16472ff6b9..b38c7536b7 100644 --- a/src/corelib/tools/qstring.h +++ b/src/corelib/tools/qstring.h @@ -414,25 +414,25 @@ public: # define Q_REQUIRED_RESULT # define Q_REQUIRED_RESULT_pushed # endif - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString toLower() const & + Q_REQUIRED_RESULT QString toLower() const & { return toLower_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString toLower() && + Q_REQUIRED_RESULT QString toLower() && { return toLower_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString toUpper() const & + Q_REQUIRED_RESULT QString toUpper() const & { return toUpper_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString toUpper() && + Q_REQUIRED_RESULT QString toUpper() && { return toUpper_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString toCaseFolded() const & + Q_REQUIRED_RESULT QString toCaseFolded() const & { return toCaseFolded_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString toCaseFolded() && + Q_REQUIRED_RESULT QString toCaseFolded() && { return toCaseFolded_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString trimmed() const & + Q_REQUIRED_RESULT QString trimmed() const & { return trimmed_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString trimmed() && + Q_REQUIRED_RESULT QString trimmed() && { return trimmed_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString simplified() const & + Q_REQUIRED_RESULT QString simplified() const & { return simplified_helper(*this); } - Q_REQUIRED_RESULT Q_ALWAYS_INLINE QString simplified() && + Q_REQUIRED_RESULT QString simplified() && { return simplified_helper(*this); } # ifdef Q_REQUIRED_RESULT_pushed # pragma pop_macro("Q_REQUIRED_RESULT") -- cgit v1.2.3