Remove the ref-qualified versions of segments and normalized
They can't be ref-qualified if the QVersionNumber object doesn't actually hold a QVector<int>, as the next commit will make it: for segments(), there might not be a QVector to be moved; for normalized(), the common case will be that there's no gain in ref-qualifying. Change-Id: I4bfb8b8765a502c0de6aed693752217106e575a2 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
This commit is contained in:
parent
4e8adb4b7b
commit
e9a7825cf7
@ -167,6 +167,14 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
\sa majorVersion(), minorVersion(), microVersion()
|
\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
|
\fn int QVersionNumber::segmentAt(int index) const
|
||||||
@ -195,6 +203,13 @@ QT_BEGIN_NAMESPACE
|
|||||||
|
|
||||||
\snippet qversionnumber/main.cpp 4
|
\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
|
\fn bool QVersionNumber::isPrefixOf(const QVersionNumber &other) const
|
||||||
@ -404,21 +419,6 @@ QVersionNumber QVersionNumber::fromString(const QString &string, int *suffixInde
|
|||||||
return QVersionNumber(qMove(seg));
|
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
|
#ifndef QT_NO_DATASTREAM
|
||||||
/*!
|
/*!
|
||||||
\fn QDataStream& operator<<(QDataStream &out,
|
\fn QDataStream& operator<<(QDataStream &out,
|
||||||
|
@ -97,44 +97,9 @@ public:
|
|||||||
inline int microVersion() const Q_DECL_NOTHROW Q_REQUIRED_RESULT
|
inline int microVersion() const Q_DECL_NOTHROW Q_REQUIRED_RESULT
|
||||||
{ return segmentAt(2); }
|
{ return segmentAt(2); }
|
||||||
|
|
||||||
#if defined(Q_COMPILER_REF_QUALIFIERS)
|
Q_CORE_EXPORT QVersionNumber normalized() const Q_REQUIRED_RESULT;
|
||||||
# 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
|
Q_CORE_EXPORT QVector<int> segments() const 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
|
|
||||||
|
|
||||||
inline int segmentAt(int index) const Q_DECL_NOTHROW 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; }
|
{ 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;
|
Q_CORE_EXPORT static Q_DECL_PURE_FUNCTION QVersionNumber fromString(const QString &string, int *suffixIndex = 0) Q_REQUIRED_RESULT;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_CORE_EXPORT static QVersionNumber normalizedImpl(QVector<int> &segs) Q_REQUIRED_RESULT;
|
|
||||||
|
|
||||||
#ifndef QT_NO_DATASTREAM
|
#ifndef QT_NO_DATASTREAM
|
||||||
friend Q_CORE_EXPORT QDataStream& operator>>(QDataStream &in, QVersionNumber &version);
|
friend Q_CORE_EXPORT QDataStream& operator>>(QDataStream &in, QVersionNumber &version);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user