aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4engine.cpp
diff options
context:
space:
mode:
authorFabian Kosmale <fabian.kosmale@qt.io>2024-02-22 14:36:13 +0100
committerFabian Kosmale <fabian.kosmale@qt.io>2024-03-05 14:06:29 +0100
commit61d7cf160f750bbef10c770997b839ee3e7c354e (patch)
tree262bf2902e8c24a893d9d30fe5042fc1f601a2c3 /src/qml/jsruntime/qv4engine.cpp
parentb871644b31a5fc1f410e0759f0b51f5418dc8f34 (diff)
Prepare for white allocations during gc(8/9): Object creator
Modify the object creator's tracking of object wrappers. It already pushed them onto the JS stack, so that triggering the gc during object creation would not trigger the wrappers of (temporarily) unparented objects. However, with the incremental gc, this is not enough: We might have already started the gc, and are beyond the phase were we visit all QObjectWrappers. If we then resume the collector only after the object cretaor is done (and the scope has been destroyed), then we don't have any reference to the QObjectWrappers. Fix this by moving the wrapper handling into a helper class, which employs a write barrier to avoid the objects from being hidden from the gc. This unconvered an unrelated issue in the usage of QV4::Scope in QQmlObjectCreator::beginPopulateDeferred, which will be addressed later. Task-number: QTBUG-122956 Change-Id: I23755438e68aa1c82786e619105683d131c31c90 Reviewed-by: Semih Yavuz <semih.yavuz@qt.io>
Diffstat (limited to 'src/qml/jsruntime/qv4engine.cpp')
0 files changed, 0 insertions, 0 deletions