diff options
author | Albert Astals Cid <[email protected]> | 2013-09-26 10:56:03 +0200 |
---|---|---|
committer | The Qt Project <[email protected]> | 2013-10-02 16:07:33 +0200 |
commit | b561a0a4ffa72fe1d43305dce90030d94316924b (patch) | |
tree | 1876d08a85da85191d11c69a8c18bdb035e0b1c9 /src/qml/jsruntime/qv4internalclass_p.h | |
parent | 10278163081c25f1b3e659b6769f0635776ab89a (diff) |
Always call callCompleted in QQmlDataBlob::tryDone
We need this since it could happen that in QQmlComponentPrivate::loadUrl we did
QQmlTypeData *data = QQmlEnginePrivate::get(engine)->typeLoader.getType(url, loaderMode);
and got a sync QQmlTypeData even if we asked for async, and thus the async loader was never notified
when it finished and we were never loaded.
Situation in which this can happen is:
* ListView with an async Loader as delegate
* Loader loads two items A and B, while A is a B
* Item 0 of the ListView triggers an async loading of A that triggers the sync loading of B
* Item 1 of the ListView triggers an async loading of B
* Since B is already being loaded (though in sync), we just add ourselves to the people that want to be notified
* sync loading of B is done and QQmlDataBlob::tryDone does not call the callbacks because it's sync
* Item 1 is never finished loading
Change-Id: I52a0979a1d3cfcfe73a71196bf24f491d6cf8e9a
Reviewed-by: Simon Hausmann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4internalclass_p.h')
0 files changed, 0 insertions, 0 deletions