From 2784a68d64519ccc5d01b6c1378207572cf1ebcd Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Thu, 13 Nov 2014 21:38:25 +0100 Subject: 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 --- src/qml/jsruntime/qv4arraybuffer.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) (limited to 'src/qml/jsruntime/qv4arraybuffer.cpp') diff --git a/src/qml/jsruntime/qv4arraybuffer.cpp b/src/qml/jsruntime/qv4arraybuffer.cpp index a74e5c6299..b8b9971635 100644 --- a/src/qml/jsruntime/qv4arraybuffer.cpp +++ b/src/qml/jsruntime/qv4arraybuffer.cpp @@ -96,6 +96,12 @@ Heap::ArrayBuffer::ArrayBuffer(ExecutionEngine *e, int length) memset(data->data(), 0, length + 1); } +Heap::ArrayBuffer::~ArrayBuffer() +{ + if (!data->ref.deref()) + QTypedArrayData::deallocate(data); +} + QByteArray ArrayBuffer::asByteArray() const { QByteArrayDataPtr ba = { d()->data }; @@ -103,14 +109,6 @@ QByteArray ArrayBuffer::asByteArray() const return QByteArray(ba); } -void ArrayBuffer::destroy(Managed *m) -{ - ArrayBuffer *b = static_cast(m); - if (!b->d()->data->ref.deref()) - QTypedArrayData::deallocate(b->d()->data); -} - - void ArrayBufferPrototype::init(ExecutionEngine *engine, Object *ctor) { Scope scope(engine); -- cgit v1.2.3