diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2014-11-01 21:44:57 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-11-07 02:00:05 +0100 |
commit | b340caa0d3ebf7f76c0445b2cdd4032d8e3bf8d5 (patch) | |
tree | e475eae0dc4a6c68ca3ee41132b573fc76d2dc10 /src/qml/jsruntime/qv4memberdata_p.h | |
parent | e22fc141c3fc5362f9b906c43a1b7c0dbc1f85a3 (diff) |
Get rid of Members and directly store MemberData::Data pointers
And do the same change for ArrayData.
Change-Id: Ia1ae56bd0ff586c9b987e15af7a53f395a37054a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4memberdata_p.h')
-rw-r--r-- | src/qml/jsruntime/qv4memberdata_p.h | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index cc7b10ff81..0177601b9f 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -53,24 +53,13 @@ struct MemberData : Managed MemberData(QV4::InternalClass *ic) : Managed(ic) {} Value &operator[] (uint idx) { return d()->data[idx]; } + const Value *data() const { return d()->data; } + Value *data() { return d()->data; } + inline uint size() const { return d()->size; } - static void markObjects(HeapObject *that, ExecutionEngine *e); -}; + static MemberData::Data *reallocate(QV4::ExecutionEngine *e, MemberData::Data *old, uint idx); -struct Members : Value -{ - void reset() { m = 0; } - void ensureIndex(QV4::ExecutionEngine *e, uint idx); - Value &operator[] (uint idx) const { return static_cast<MemberData *>(managed())->d()->data[idx]; } - inline uint size() const { return d() ? d()->d()->size : 0; } - inline MemberData *d() const { return static_cast<MemberData *>(managed()); } - Value *data() const { return static_cast<MemberData *>(managed())->d()->data; } - - void mark(ExecutionEngine *e) const { - MemberData *m = d(); - if (m) - m->mark(e); - } + static void markObjects(HeapObject *that, ExecutionEngine *e); }; } |