diff options
author | Lars Knoll <lars.knoll@theqtcompany.com> | 2014-11-13 21:53:27 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-11-21 19:32:52 +0100 |
commit | 9f717b650ea0a7efc4240240f957beba8d027bda (patch) | |
tree | 8e3726ba5309703f56922a1083d2d595c6236912 /src/qml/jsruntime/qv4memberdata.cpp | |
parent | 2784a68d64519ccc5d01b6c1378207572cf1ebcd (diff) |
Let the memory manager operate on Heap::Base objects, not Managed
Change-Id: Ib5c9b51dbf9c69abeda088094e6348dd545bf3c8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4memberdata.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4memberdata.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4memberdata.cpp b/src/qml/jsruntime/qv4memberdata.cpp index 50653a0115..92ffc391de 100644 --- a/src/qml/jsruntime/qv4memberdata.cpp +++ b/src/qml/jsruntime/qv4memberdata.cpp @@ -53,11 +53,12 @@ Heap::MemberData *MemberData::reallocate(ExecutionEngine *e, Heap::MemberData *o int newAlloc = qMax((uint)4, 2*idx); uint alloc = sizeof(Heap::MemberData) + (newAlloc)*sizeof(Value); - MemberData *newMemberData = static_cast<MemberData *>(e->memoryManager->allocManaged(alloc)); + Scope scope(e); + Scoped<MemberData> newMemberData(scope, static_cast<Heap::MemberData *>(e->memoryManager->allocManaged(alloc))); if (old) memcpy(newMemberData, old, sizeof(Heap::MemberData) + s*sizeof(Value)); else - new (newMemberData) Heap::MemberData(e->memberDataClass); + new (newMemberData->d()) Heap::MemberData(e->memberDataClass); newMemberData->d()->size = newAlloc; return newMemberData->d(); } |