diff options
author | Lars Knoll <[email protected]> | 2014-11-13 21:53:27 +0100 |
---|---|---|
committer | Simon Hausmann <[email protected]> | 2014-11-21 19:32:52 +0100 |
commit | 9f717b650ea0a7efc4240240f957beba8d027bda (patch) | |
tree | 8e3726ba5309703f56922a1083d2d595c6236912 /src/qml/jsruntime/qv4arraydata.cpp | |
parent | 2784a68d64519ccc5d01b6c1378207572cf1ebcd (diff) |
Let the memory manager operate on Heap::Base objects, not Managed
Change-Id: Ib5c9b51dbf9c69abeda088094e6348dd545bf3c8
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4arraydata.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4arraydata.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/qml/jsruntime/qv4arraydata.cpp b/src/qml/jsruntime/qv4arraydata.cpp index 26dce28470..deabfebd79 100644 --- a/src/qml/jsruntime/qv4arraydata.cpp +++ b/src/qml/jsruntime/qv4arraydata.cpp @@ -126,15 +126,16 @@ void ArrayData::realloc(Object *o, Type newType, uint requested, bool enforceAtt if (enforceAttributes) size += alloc*sizeof(PropertyAttributes); + Scope scope(o->engine()); ArrayData *newData; if (newType < Heap::ArrayData::Sparse) { - SimpleArrayData *n = static_cast<SimpleArrayData *>(o->engine()->memoryManager->allocManaged(size)); + Scoped<SimpleArrayData> n(scope, static_cast<Heap::SimpleArrayData *>(o->engine()->memoryManager->allocManaged(size))); new (n->d()) Heap::SimpleArrayData(o->engine()); n->d()->offset = 0; n->len() = d ? static_cast<SimpleArrayData *>(d)->len() : 0; newData = n; } else { - SparseArrayData *n = static_cast<SparseArrayData *>(o->engine()->memoryManager->allocManaged(size)); + Scoped<SparseArrayData> n(scope, static_cast<Heap::SparseArrayData *>(o->engine()->memoryManager->allocManaged(size))); new (n->d()) Heap::SparseArrayData(o->engine()); newData = n; } |