diff options
author | Lars Knoll <[email protected]> | 2014-11-10 16:21:38 +0100 |
---|---|---|
committer | Simon Hausmann <[email protected]> | 2014-11-12 12:13:42 +0100 |
commit | 60f3c23f524eaed795dd4ce58722cdf923ba6a51 (patch) | |
tree | 7636be29b0297b865baa01a3575b3ce330e4a85d /src/qml/jsruntime/qv4dataview.cpp | |
parent | 3e84f76bbc7a3fe0a8428be3cd6340401065ad23 (diff) |
Use Heap objects inside argumentsobject, arraybuffer and errorobject
Change-Id: Iad76a1351dcca1fd46303a1072540c23a8ef6722
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4dataview.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4dataview.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/qml/jsruntime/qv4dataview.cpp b/src/qml/jsruntime/qv4dataview.cpp index 0a473ca4ed..61a009187d 100644 --- a/src/qml/jsruntime/qv4dataview.cpp +++ b/src/qml/jsruntime/qv4dataview.cpp @@ -63,7 +63,7 @@ ReturnedValue DataViewCtor::construct(Managed *m, CallData *callData) return scope.engine->throwRangeError(QStringLiteral("DataView: constructor arguments out of range")); Scoped<DataView> a(scope, scope.engine->memoryManager->alloc<DataView>(scope.engine)); - a->d()->buffer = buffer; + a->d()->buffer = buffer->d(); a->d()->byteLength = byteLength; a->d()->byteOffset = byteOffset; return a.asReturnedValue(); @@ -164,7 +164,7 @@ ReturnedValue DataViewPrototype::method_getChar(CallContext *ctx) return scope.engine->throwTypeError(); idx += v->d()->byteOffset; - T t = T(v->d()->buffer->d()->data->data()[idx]); + T t = T(v->d()->buffer->data->data()[idx]); return Encode((int)t); } @@ -185,8 +185,8 @@ ReturnedValue DataViewPrototype::method_get(CallContext *ctx) bool littleEndian = ctx->d()->callData->argc < 2 ? false : ctx->d()->callData->args[1].toBoolean(); T t = littleEndian - ? qFromLittleEndian<T>((uchar *)v->d()->buffer->d()->data->data() + idx) - : qFromBigEndian<T>((uchar *)v->d()->buffer->d()->data->data() + idx); + ? qFromLittleEndian<T>((uchar *)v->d()->buffer->data->data() + idx) + : qFromBigEndian<T>((uchar *)v->d()->buffer->data->data() + idx); return Encode(t); } @@ -213,8 +213,8 @@ ReturnedValue DataViewPrototype::method_getFloat(CallContext *ctx) float f; } u; u.i = littleEndian - ? qFromLittleEndian<uint>((uchar *)v->d()->buffer->d()->data->data() + idx) - : qFromBigEndian<uint>((uchar *)v->d()->buffer->d()->data->data() + idx); + ? qFromLittleEndian<uint>((uchar *)v->d()->buffer->data->data() + idx) + : qFromBigEndian<uint>((uchar *)v->d()->buffer->data->data() + idx); return Encode(u.f); } else { Q_ASSERT(sizeof(T) == 8); @@ -223,8 +223,8 @@ ReturnedValue DataViewPrototype::method_getFloat(CallContext *ctx) double d; } u; u.i = littleEndian - ? qFromLittleEndian<quint64>((uchar *)v->d()->buffer->d()->data->data() + idx) - : qFromBigEndian<quint64>((uchar *)v->d()->buffer->d()->data->data() + idx); + ? qFromLittleEndian<quint64>((uchar *)v->d()->buffer->data->data() + idx) + : qFromBigEndian<quint64>((uchar *)v->d()->buffer->data->data() + idx); return Encode(u.d); } } @@ -243,7 +243,7 @@ ReturnedValue DataViewPrototype::method_setChar(CallContext *ctx) idx += v->d()->byteOffset; int val = ctx->d()->callData->argc >= 2 ? ctx->d()->callData->args[1].toInt32() : 0; - v->d()->buffer->d()->data->data()[idx] = (char)val; + v->d()->buffer->data->data()[idx] = (char)val; return Encode::undefined(); } @@ -266,9 +266,9 @@ ReturnedValue DataViewPrototype::method_set(CallContext *ctx) bool littleEndian = ctx->d()->callData->argc < 3 ? false : ctx->d()->callData->args[2].toBoolean(); if (littleEndian) - qToLittleEndian<T>(val, (uchar *)v->d()->buffer->d()->data->data() + idx); + qToLittleEndian<T>(val, (uchar *)v->d()->buffer->data->data() + idx); else - qToBigEndian<T>(val, (uchar *)v->d()->buffer->d()->data->data() + idx); + qToBigEndian<T>(val, (uchar *)v->d()->buffer->data->data() + idx); return Encode::undefined(); } @@ -297,9 +297,9 @@ ReturnedValue DataViewPrototype::method_setFloat(CallContext *ctx) } u; u.f = val; if (littleEndian) - qToLittleEndian(u.i, (uchar *)v->d()->buffer->d()->data->data() + idx); + qToLittleEndian(u.i, (uchar *)v->d()->buffer->data->data() + idx); else - qToBigEndian(u.i, (uchar *)v->d()->buffer->d()->data->data() + idx); + qToBigEndian(u.i, (uchar *)v->d()->buffer->data->data() + idx); } else { Q_ASSERT(sizeof(T) == 8); union { @@ -308,9 +308,9 @@ ReturnedValue DataViewPrototype::method_setFloat(CallContext *ctx) } u; u.d = val; if (littleEndian) - qToLittleEndian(u.i, (uchar *)v->d()->buffer->d()->data->data() + idx); + qToLittleEndian(u.i, (uchar *)v->d()->buffer->data->data() + idx); else - qToBigEndian(u.i, (uchar *)v->d()->buffer->d()->data->data() + idx); + qToBigEndian(u.i, (uchar *)v->d()->buffer->data->data() + idx); } return Encode::undefined(); } |