History

Typed arrays bug fixing

Atlante45 committed 12 years ago

Commit 3070ac41 parent ff378b62 files · +21 −16Browse files

Showing the changes to libraries/script-engine/src/DataViewClass.cpp (1 of 2 files). Show all

Unified · Split

libraries/script-engine/src/DataViewClass.cpp+3−6
@@ -74,12 +74,9 @@ QScriptValue DataViewClass::construct(QScriptContext *context, QScriptEngine *en · 73 unmodified lines
7474 engine->evaluate("throw \"RangeError: byteLength out of range\"");
7575 return QScriptValue();
7676 }
77−
78− QScriptValue newObject = cls->newInstance(bufferArg,
79− (byteOffsetArg.isNumber()) ? byteOffsetArg.toInt32()
80− : 0,
81− (byteLengthArg.isNumber()) ? byteLengthArg.toInt32()
82− : arrayBuffer->size());
77+ quint32 byteOffset = (byteOffsetArg.isNumber()) ? byteOffsetArg.toInt32() : 0;
78+ quint32 byteLength = (byteLengthArg.isNumber()) ? byteLengthArg.toInt32() : arrayBuffer->size() - byteOffset;
79+ QScriptValue newObject = cls->newInstance(bufferArg, byteOffset, byteLength);
8380
8481 if (context->isCalledAsConstructor()) {
8582 context->setThisObject(newObject);