diff options
-rw-r--r-- | src/corelib/tools/qversionnumber.cpp | 30 | ||||
-rw-r--r-- | src/corelib/tools/qversionnumber.h | 43 |
2 files changed, 18 insertions, 55 deletions
diff --git a/src/corelib/tools/qversionnumber.cpp b/src/corelib/tools/qversionnumber.cpp index 7e87d3e1d3..4bc94c25be 100644 --- a/src/corelib/tools/qversionnumber.cpp +++ b/src/corelib/tools/qversionnumber.cpp @@ -167,6 +167,14 @@ QT_BEGIN_NAMESPACE \sa majorVersion(), minorVersion(), microVersion() */ +QVector<int> QVersionNumber::segments() const +{ + QVector<int> result; + result.resize(segmentCount()); + for (int i = 0; i < segmentCount(); ++i) + result[i] = segmentAt(i); + return result; +} /*! \fn int QVersionNumber::segmentAt(int index) const @@ -195,6 +203,13 @@ QT_BEGIN_NAMESPACE \snippet qversionnumber/main.cpp 4 */ +QVersionNumber QVersionNumber::normalized() const +{ + QVector<int> segs = m_segments; + while (segs.size() && segs.last() == 0) + segs.pop_back(); + return QVersionNumber(qMove(segs)); +} /*! \fn bool QVersionNumber::isPrefixOf(const QVersionNumber &other) const @@ -404,21 +419,6 @@ QVersionNumber QVersionNumber::fromString(const QString &string, int *suffixInde return QVersionNumber(qMove(seg)); } -/*! - \fn QVersionNumber QVersionNumber::normalizedImpl(QVector<int> &segs) - - Implementation of the normalized() function. Takes the movable list \a segs - and normalizes them. - - \internal - */ -QVersionNumber QVersionNumber::normalizedImpl(QVector<int> &segs) -{ - while (segs.size() && segs.last() == 0) - segs.pop_back(); - return QVersionNumber(qMove(segs)); -} - #ifndef QT_NO_DATASTREAM /*! \fn QDataStream& operator<<(QDataStream &out, diff --git a/src/corelib/tools/qversionnumber.h b/src/corelib/tools/qversionnumber.h index 449445cac6..050e685f03 100644 --- a/src/corelib/tools/qversionnumber.h +++ b/src/corelib/tools/qversionnumber.h @@ -97,44 +97,9 @@ public: inline int microVersion() const Q_DECL_NOTHROW Q_REQUIRED_RESULT { return segmentAt(2); } -#if defined(Q_COMPILER_REF_QUALIFIERS) -# if defined(Q_CC_GNU) - // required due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61941 -# pragma push_macro("Q_REQUIRED_RESULT") -# undef Q_REQUIRED_RESULT -# define Q_REQUIRED_RESULT -# define Q_REQUIRED_RESULT_pushed -# endif - inline QVersionNumber normalized() const & Q_REQUIRED_RESULT - { - QVector<int> segs(m_segments); - return normalizedImpl(segs); - } - - inline QVersionNumber normalized() && Q_REQUIRED_RESULT - { - return normalizedImpl(m_segments); - } - - inline QVector<int> segments() const & Q_DECL_NOTHROW Q_REQUIRED_RESULT - { return m_segments; } - - inline QVector<int> segments() && Q_DECL_NOTHROW Q_REQUIRED_RESULT - { return qMove(m_segments); } - -# ifdef Q_REQUIRED_RESULT_pushed -# pragma pop_macro("Q_REQUIRED_RESULT") -# endif -#else - inline QVersionNumber normalized() const Q_REQUIRED_RESULT - { - QVector<int> segs(m_segments); - return normalizedImpl(segs); - } - - inline QVector<int> segments() const Q_DECL_NOTHROW Q_REQUIRED_RESULT - { return m_segments; } -#endif + Q_CORE_EXPORT QVersionNumber normalized() const Q_REQUIRED_RESULT; + + Q_CORE_EXPORT QVector<int> segments() const Q_REQUIRED_RESULT; inline int segmentAt(int index) const Q_DECL_NOTHROW Q_REQUIRED_RESULT { return (m_segments.size() > index) ? m_segments.at(index) : 0; } @@ -152,8 +117,6 @@ public: Q_CORE_EXPORT static Q_DECL_PURE_FUNCTION QVersionNumber fromString(const QString &string, int *suffixIndex = 0) Q_REQUIRED_RESULT; private: - Q_CORE_EXPORT static QVersionNumber normalizedImpl(QVector<int> &segs) Q_REQUIRED_RESULT; - #ifndef QT_NO_DATASTREAM friend Q_CORE_EXPORT QDataStream& operator>>(QDataStream &in, QVersionNumber &version); #endif |