diff options
Diffstat (limited to 'src/corelib/text/qstringview.h')
-rw-r--r-- | src/corelib/text/qstringview.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/corelib/text/qstringview.h b/src/corelib/text/qstringview.h index 38a6a43219..5a317479ca 100644 --- a/src/corelib/text/qstringview.h +++ b/src/corelib/text/qstringview.h @@ -141,7 +141,7 @@ private: } template <typename Char> - static qsizetype lengthHelperPointer(const Char *str) noexcept + static Q_DECL_RELAXED_CONSTEXPR qsizetype lengthHelperPointer(const Char *str) noexcept { #if defined(Q_CC_GNU) && !defined(Q_CC_CLANG) && !defined(Q_CC_INTEL) if (__builtin_constant_p(*str)) { @@ -244,7 +244,8 @@ public: } Q_REQUIRED_RESULT Q_DECL_CONSTEXPR QStringView mid(qsizetype pos, qsizetype n) const { - return QStringView(m_data + qBound(qsizetype(0), pos, m_size), qBound(qsizetype(0), pos + n, m_size) - qBound(qsizetype(0), pos, m_size)); + return QStringView(m_data + qBound(qsizetype(0), pos, m_size), + n == -1 ? m_size - pos : qBound(qsizetype(0), pos + n, m_size) - qBound(qsizetype(0), pos, m_size)); } Q_REQUIRED_RESULT Q_DECL_CONSTEXPR QStringView left(qsizetype n) const { |