diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2018-01-31 12:29:42 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-02-02 05:46:16 +0000 |
commit | f7ffed94c1540e015794a8d6d4910e8ca87c15e1 (patch) | |
tree | bfe9dd6e0531961d98d397300d8530fe2779dd7e | |
parent | 8c0501855787986365519da12e9e580b30fb26af (diff) |
Fix memory leak with value types
Commit 3b14e2ffdd8eb4b7f7f4508768b75f2acc399370 replaced the
QQmlRefPointer<QQmlPropertyCache> with a raw QQmlPropertyCache pointer
and added a V4_NEEDS_DESTROY tag. However unfortunately the destroy()
method in the heap class does not decrease the reference count.
Change-Id: I90a8c56cd638592b67aae7041fbb57c879c4146c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
-rw-r--r-- | src/qml/qml/qqmlvaluetypewrapper.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlvaluetypewrapper.cpp b/src/qml/qml/qqmlvaluetypewrapper.cpp index 41bb85c351..b2b49f7909 100644 --- a/src/qml/qml/qqmlvaluetypewrapper.cpp +++ b/src/qml/qml/qqmlvaluetypewrapper.cpp @@ -96,6 +96,8 @@ void Heap::QQmlValueTypeWrapper::destroy() valueType->metaType.destruct(gadgetPtr); ::operator delete(gadgetPtr); } + if (_propertyCache) + _propertyCache->release(); Object::destroy(); } |