diff options
author | Simon Hausmann <simon.hausmann@qt.io> | 2018-04-26 11:47:27 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-04-30 08:19:28 +0000 |
commit | 01df9e5f46fd05a80f8f6fcaa91204e6184ded6f (patch) | |
tree | e805ad3a843918a5e5c14d8db778a07c64f80d2f /examples/quick/imageelements/spritesequence.qml | |
parent | f0458d2af4c75837257c9e4c0f130fa168b247dd (diff) |
Fix QML context leak with visual data model and list property models
When using the VDM or QML list properties as models, the delegate model
injects an intermediate QQmlContext that provides access to the
properties of the exposed QObject as context properties. Before commit
e22b624d9ab1f36021adb9cdbfa9b37054282bb8, that context was marked to be
owned by the parent QQmlContext.
When the reference counting was introduced, that parent became
referenced from the cacheItem (DelegateModelItem), but that intermediate
QQmlContext became floating and was leaked.
This can be observed by running the objectListModel test of
tst_qquickvisualdatamodel with detect_leaks=1 in ASAN_OPTIONS.
The leak is fixed by re-introducing the exceptional case of a parent
holding a strong reference to the child, in just this one case.
Change-Id: Iabc26990d39757b0abe0cddf69e76e88e40fba40
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Diffstat (limited to 'examples/quick/imageelements/spritesequence.qml')
0 files changed, 0 insertions, 0 deletions