summaryrefslogtreecommitdiffstats
path: root/src/corelib/tools/qarraydata.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2020-06-02 15:51:15 +0200
committerLars Knoll <lars.knoll@qt.io>2020-06-09 16:51:16 +0200
commitd2833a3ce5af725d66ef9338f2a61b766dd3cb2d (patch)
tree3b74823b5f2da7cfd179e4faeed1697c4ff14d09 /src/corelib/tools/qarraydata.cpp
parentfd856532d7472ccc6daf6a95d5c28264d9e6adca (diff)
Ensure left/right/mid behave in a compatible way
QString and QStringRef did bounds checking for left/right/mid, whereas QStringView was asserting on out of bounds. Relax the behavior for QStringView and do bounds checking on pos/n as well. This removes a source of potentially hidden errors when porting from QStringRef (or QString) to QStringView. Unfortunately, one difference remains, where QByteArray::left/right() behaves differently (and somewhat more sane) than QString and QStringRef. We're keeping the difference here, as it has been around for many years. Mark left/right/mid as obsolete and to be replaced with the new first/last/slice methods. Change-Id: I18c203799ba78c928a4610a6038089f27696c22e Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/corelib/tools/qarraydata.cpp')
-rw-r--r--src/corelib/tools/qarraydata.cpp29
1 files changed, 0 insertions, 29 deletions
diff --git a/src/corelib/tools/qarraydata.cpp b/src/corelib/tools/qarraydata.cpp
index 497eae1f7f..b72ca20131 100644
--- a/src/corelib/tools/qarraydata.cpp
+++ b/src/corelib/tools/qarraydata.cpp
@@ -281,33 +281,4 @@ void QArrayData::deallocate(QArrayData *data, size_t objectSize,
::free(data);
}
-namespace QtPrivate {
-/*!
- \internal
-*/
-QContainerImplHelper::CutResult QContainerImplHelper::mid(int originalLength, int *_position, int *_length)
-{
- int &position = *_position;
- int &length = *_length;
- if (position > originalLength)
- return Null;
-
- if (position < 0) {
- if (length < 0 || length + position >= originalLength)
- return Full;
- if (length + position <= 0)
- return Null;
- length += position;
- position = 0;
- } else if (uint(length) > uint(originalLength - position)) {
- length = originalLength - position;
- }
-
- if (position == 0 && length == originalLength)
- return Full;
-
- return length > 0 ? Subset : Empty;
-}
-}
-
QT_END_NAMESPACE