diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-04-29 10:53:47 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-07-22 13:49:00 +0200 |
commit | 36b9fe865d5329e13bcb0e2b3aa67e91c6f7bb0d (patch) | |
tree | c8f81f9798591ea54f9f478ab850443c77c04358 /src/qml | |
parent | e74c19da8eb74132aba761f8b8fe0eac47fe2dcd (diff) |
Convert ArgumentsObject over to the new storage scheme
Change-Id: I087e51cef255c025dfabe416ba459cc51a889153
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml')
-rw-r--r-- | src/qml/jsruntime/qv4argumentsobject.cpp | 8 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4argumentsobject_p.h | 42 |
2 files changed, 29 insertions, 21 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject.cpp b/src/qml/jsruntime/qv4argumentsobject.cpp index 48b9822b6a..092d151409 100644 --- a/src/qml/jsruntime/qv4argumentsobject.cpp +++ b/src/qml/jsruntime/qv4argumentsobject.cpp @@ -49,8 +49,8 @@ DEFINE_OBJECT_VTABLE(ArgumentsObject); ArgumentsObject::ArgumentsObject(CallContext *context) : Object(context->strictMode ? context->engine->strictArgumentsObjectClass : context->engine->argumentsObjectClass) { - data.context = context; - data.fullyCreated = false; + d()->context = context; + d()->fullyCreated = false; ExecutionEngine *v4 = context->engine; Scope scope(v4); @@ -68,7 +68,7 @@ ArgumentsObject::ArgumentsObject(CallContext *context) arrayReserve(context->callData->argc); arrayPut(0, context->callData->args, context->callData->argc); - data.fullyCreated = true; + d()->fullyCreated = true; } else { setHasAccessorProperty(); Q_ASSERT(CalleePropertyIndex == internalClass()->find(context->engine->id_callee)); @@ -98,7 +98,7 @@ void ArgumentsObject::fullyCreate() for (uint i = numAccessors; i < argCount; ++i) setArrayAttributes(i, Attr_Data); - data.fullyCreated = true; + d()->fullyCreated = true; } bool ArgumentsObject::defineOwnProperty(ExecutionContext *ctx, uint index, const Property &desc, PropertyAttributes attrs) diff --git a/src/qml/jsruntime/qv4argumentsobject_p.h b/src/qml/jsruntime/qv4argumentsobject_p.h index 609556115c..f3bd290aa0 100644 --- a/src/qml/jsruntime/qv4argumentsobject_p.h +++ b/src/qml/jsruntime/qv4argumentsobject_p.h @@ -50,18 +50,20 @@ namespace QV4 { struct ArgumentsGetterFunction: FunctionObject { - V4_OBJECT - struct Data { + struct Data : FunctionObject::Data { uint index; }; - Data data; + struct { + uint index; + } __data; + V4_OBJECT_NEW - uint index() const { return data.index; } + uint index() const { return d()->index; } ArgumentsGetterFunction(ExecutionContext *scope, uint index) : FunctionObject(scope) { - data.index = index; + d()->index = index; setVTable(staticVTable()); } @@ -70,18 +72,20 @@ struct ArgumentsGetterFunction: FunctionObject struct ArgumentsSetterFunction: FunctionObject { - V4_OBJECT - struct Data { + struct Data : FunctionObject::Data { uint index; }; - Data data; + struct { + uint index; + } __data; + V4_OBJECT_NEW - uint index() const { return data.index; } + uint index() const { return d()->index; } ArgumentsSetterFunction(ExecutionContext *scope, uint index) : FunctionObject(scope) { - data.index = index; + d()->index = index; setVTable(staticVTable()); } @@ -90,18 +94,22 @@ struct ArgumentsSetterFunction: FunctionObject struct ArgumentsObject: Object { - V4_OBJECT - Q_MANAGED_TYPE(ArgumentsObject) - struct Data { + struct Data : Object::Data { CallContext *context; bool fullyCreated; Members mappedArguments; }; - Data data; + struct { + CallContext *context; + bool fullyCreated; + Members mappedArguments; + } __data; + V4_OBJECT_NEW + Q_MANAGED_TYPE(ArgumentsObject) - CallContext *context() const { return data.context; } - bool fullyCreated() const { return data.fullyCreated; } - Members mappedArguments() const { return data.mappedArguments; } + CallContext *context() const { return d()->context; } + bool fullyCreated() const { return d()->fullyCreated; } + Members &mappedArguments() { return d()->mappedArguments; } ArgumentsObject(CallContext *context); |