diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-04-10 17:17:29 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-07-22 13:48:57 +0200 |
commit | f05f3a36b43ada6b37cda1ee4703fe857f8771da (patch) | |
tree | 9ffae27ab6aeb351131d01a44b3380f43b74c571 /src/qml/jsruntime/qv4argumentsobject_p.h | |
parent | 441a6ff47a713587f1b43c61377ed64caf15692f (diff) |
Convert ArgumentsObject to new data layout
Change-Id: I568ccacb065fff0257a193087eb0cafaeba2d5e0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4argumentsobject_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4argumentsobject_p.h | 38 |
1 files changed, 30 insertions, 8 deletions
diff --git a/src/qml/jsruntime/qv4argumentsobject_p.h b/src/qml/jsruntime/qv4argumentsobject_p.h index 9c27b83ae2..609556115c 100644 --- a/src/qml/jsruntime/qv4argumentsobject_p.h +++ b/src/qml/jsruntime/qv4argumentsobject_p.h @@ -51,10 +51,17 @@ namespace QV4 { struct ArgumentsGetterFunction: FunctionObject { V4_OBJECT - uint index; + struct Data { + uint index; + }; + Data data; + + uint index() const { return data.index; } ArgumentsGetterFunction(ExecutionContext *scope, uint index) - : FunctionObject(scope), index(index) { + : FunctionObject(scope) + { + data.index = index; setVTable(staticVTable()); } @@ -64,10 +71,17 @@ struct ArgumentsGetterFunction: FunctionObject struct ArgumentsSetterFunction: FunctionObject { V4_OBJECT - uint index; + struct Data { + uint index; + }; + Data data; + + uint index() const { return data.index; } ArgumentsSetterFunction(ExecutionContext *scope, uint index) - : FunctionObject(scope), index(index) { + : FunctionObject(scope) + { + data.index = index; setVTable(staticVTable()); } @@ -78,14 +92,22 @@ struct ArgumentsSetterFunction: FunctionObject struct ArgumentsObject: Object { V4_OBJECT Q_MANAGED_TYPE(ArgumentsObject) - CallContext *context; - bool fullyCreated; - Members mappedArguments; + struct Data { + CallContext *context; + bool fullyCreated; + Members mappedArguments; + }; + Data data; + + CallContext *context() const { return data.context; } + bool fullyCreated() const { return data.fullyCreated; } + Members mappedArguments() const { return data.mappedArguments; } + ArgumentsObject(CallContext *context); static bool isNonStrictArgumentsObject(Managed *m) { return m->internalClass()->vtable->type == Type_ArgumentsObject && - !static_cast<ArgumentsObject *>(m)->context->strictMode; + !static_cast<ArgumentsObject *>(m)->context()->strictMode; } enum { |