diff options
| author | Ulf Hermann <ulf.hermann@qt.io> | 2022-09-01 17:18:12 +0200 |
|---|---|---|
| committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-09-07 16:56:55 +0200 |
| commit | 7778028f993cd64fc8f1cf4800a5341c395f88c3 (patch) | |
| tree | 4ae34ec85dd3f02c422e81c03f4521ebe23d6fd9 /src/qml/jsruntime/qv4arraybuffer.cpp | |
| parent | ac26bab290e7d38a3a40077c6fdd1673a008b55f (diff) | |
V4: Adjust some more index calculations
No, we cannot collapse -inf to 0 before checking for negative nubers.
Task-number: QTBUG-100242
Change-Id: I764c1168add2b321f3af6a7f5194647d0806c159
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4arraybuffer.cpp')
| -rw-r--r-- | src/qml/jsruntime/qv4arraybuffer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/qml/jsruntime/qv4arraybuffer.cpp b/src/qml/jsruntime/qv4arraybuffer.cpp index b8f6f61820..582369dcf3 100644 --- a/src/qml/jsruntime/qv4arraybuffer.cpp +++ b/src/qml/jsruntime/qv4arraybuffer.cpp @@ -30,13 +30,14 @@ ReturnedValue SharedArrayBufferCtor::virtualCallAsConstructor(const FunctionObje if (newTarget->isUndefined()) return scope.engine->throwTypeError(); - qint64 len = argc ? argv[0].toIndex() : 0; + const double len = argc ? argv[0].toInteger() : 0; if (scope.hasException()) return Encode::undefined(); - if (len < 0 || len >= INT_MAX) + if (len < 0 || len >= std::numeric_limits<int>::max()) return scope.engine->throwRangeError(QStringLiteral("SharedArrayBuffer: Invalid length.")); - Scoped<SharedArrayBuffer> a(scope, scope.engine->memoryManager->allocate<SharedArrayBuffer>(len)); + Scoped<SharedArrayBuffer> a( + scope, scope.engine->memoryManager->allocate<SharedArrayBuffer>(size_t(len))); if (scope.hasException()) return Encode::undefined(); |
