forked from qt-creator/qt-creator
Fix crash after move to QStringView
With Qt 5. Fix the bounds checking for midView by copying the complete logic from Qt QContainerImplHelper::mid. Fixes: QDS-2806 Task-number: QTCREATORBUG-24098 Change-Id: I0d7d414c159f81a76114b67f55aefbb81f17b034 Reviewed-by: Henning Gründl <henning.gruendl@qt.io> Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
@@ -66,9 +66,16 @@ inline StringView make_stringview(const QString &s)
|
||||
inline QStringView midView(const QString &s, int offset, int length)
|
||||
{
|
||||
#if QT_VERSION < QT_VERSION_CHECK(6, 0, 0)
|
||||
if (offset > s.size())
|
||||
const int size = s.size();
|
||||
if (offset > size)
|
||||
return {};
|
||||
if (offset + length > s.size())
|
||||
if (offset < 0) {
|
||||
if (length < 0 || length + offset >= size)
|
||||
return QStringView(s);
|
||||
if (length + offset <= 0)
|
||||
return {};
|
||||
return QStringView(s).left(length + offset);
|
||||
} else if (length > size - offset)
|
||||
return QStringView(s).mid(offset);
|
||||
return QStringView(s).mid(offset, length);
|
||||
#else
|
||||
|
Reference in New Issue
Block a user