aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4arraydata_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@theqtcompany.com>2014-11-13 21:38:25 +0100
committerSimon Hausmann <simon.hausmann@digia.com>2014-11-21 19:32:23 +0100
commit2784a68d64519ccc5d01b6c1378207572cf1ebcd (patch)
treeb66287687e7311a24253d60e18bcba829fb475ad /src/qml/jsruntime/qv4arraydata_p.h
parent2cb6d1bf32e017026f618dcfdbef3980f5363656 (diff)
Cleanup destruction of heap objects
Generate the code from a macro instead of duplicating boiler plate code. Operate on Heap::Base instead of Managed. Change-Id: I84c5a705980899be3e5b931a093645e50d3923bf Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/jsruntime/qv4arraydata_p.h')
-rw-r--r--src/qml/jsruntime/qv4arraydata_p.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/qml/jsruntime/qv4arraydata_p.h b/src/qml/jsruntime/qv4arraydata_p.h
index df6c3de8cb..1b0589ed95 100644
--- a/src/qml/jsruntime/qv4arraydata_p.h
+++ b/src/qml/jsruntime/qv4arraydata_p.h
@@ -106,6 +106,7 @@ struct SimpleArrayData : public ArrayData {
struct SparseArrayData : public ArrayData {
inline SparseArrayData(ExecutionEngine *engine);
+ inline ~SparseArrayData();
};
}
@@ -196,6 +197,7 @@ struct Q_QML_EXPORT SimpleArrayData : public ArrayData
struct Q_QML_EXPORT SparseArrayData : public ArrayData
{
V4_ARRAYDATA(SparseArrayData)
+ V4_NEEDS_DESTROY
uint &freeList() { return d()->freeList; }
uint freeList() const { return d()->freeList; }
@@ -219,7 +221,6 @@ struct Q_QML_EXPORT SparseArrayData : public ArrayData
return n->value;
}
- static void destroy(Managed *d);
static void markObjects(Heap::Base *d, ExecutionEngine *e);
static ArrayData *reallocate(Object *o, uint n, bool enforceAttributes);
@@ -241,6 +242,12 @@ inline SparseArrayData::SparseArrayData(ExecutionEngine *engine)
{
setVTable(QV4::SparseArrayData::staticVTable());
}
+
+inline SparseArrayData::~SparseArrayData()
+{
+ delete sparse;
+}
+
}
inline Property *ArrayData::getProperty(uint index)