diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-11-13 12:25:08 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-11-21 16:36:29 +0100 |
commit | d6140dbfe8ee700c20c1bb9811b4d15a30a83767 (patch) | |
tree | 1a2cad7707934c3c7c083225cb0a16552e428e3d /src | |
parent | b943d80dd90dec1a8b7802b826ad89e924cead05 (diff) |
We should never construct a managed derived type directly anymore
Change-Id: I77e4065429a49bb3409bd1518ce910298d6141ee
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/qml/jsruntime/qv4managed_p.h | 6 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4memberdata.cpp | 2 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4memberdata_p.h | 3 |
3 files changed, 5 insertions, 6 deletions
diff --git a/src/qml/jsruntime/qv4managed_p.h b/src/qml/jsruntime/qv4managed_p.h index 5b9668b1c1..ab7580f106 100644 --- a/src/qml/jsruntime/qv4managed_p.h +++ b/src/qml/jsruntime/qv4managed_p.h @@ -198,17 +198,15 @@ private: void *operator new(size_t); Managed(const Managed &other); void operator = (const Managed &other); - -protected: Managed(InternalClass *internal) : data(internal) { } - -public: void *operator new(size_t size, MemoryManager *mm); void *operator new(size_t, Managed *m) { return m; } +public: + inline void mark(QV4::ExecutionEngine *engine); enum Type { diff --git a/src/qml/jsruntime/qv4memberdata.cpp b/src/qml/jsruntime/qv4memberdata.cpp index fe670992d2..50653a0115 100644 --- a/src/qml/jsruntime/qv4memberdata.cpp +++ b/src/qml/jsruntime/qv4memberdata.cpp @@ -57,7 +57,7 @@ Heap::MemberData *MemberData::reallocate(ExecutionEngine *e, Heap::MemberData *o if (old) memcpy(newMemberData, old, sizeof(Heap::MemberData) + s*sizeof(Value)); else - new (newMemberData) MemberData(e->memberDataClass); + new (newMemberData) Heap::MemberData(e->memberDataClass); newMemberData->d()->size = newAlloc; return newMemberData->d(); } diff --git a/src/qml/jsruntime/qv4memberdata_p.h b/src/qml/jsruntime/qv4memberdata_p.h index 616d8ee089..c881cf961a 100644 --- a/src/qml/jsruntime/qv4memberdata_p.h +++ b/src/qml/jsruntime/qv4memberdata_p.h @@ -43,6 +43,8 @@ namespace QV4 { namespace Heap { struct MemberData : Base { + MemberData(InternalClass *c) + : Base(c), size(0) {} union { uint size; double _dummy; @@ -56,7 +58,6 @@ struct MemberData : Managed { V4_MANAGED(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; } |