qtdeclarative/tests/auto/quick/qquickloader/data
Ulf Hermann 4677b2bdd6 QML: Add an accurate stack bounds checker
This re-introduces a stack bounds checker. The previous stack bounds
checker was removed in commit 74f75a3a12
because the cost of determining the stack base was deemed too high.

Indeed, determining the stack base on linux using the pthread functions
costs about 200.000 instructions and the cost grows with the number of
concurrently running threads.

However, by reading /proc/self/maps directly we can trim this to about
125k instructions. Furthermore, with the new implementation we only need
to do this once per engine. Calling JavaScript functions of the same
engine from different threads is not supported. So we don't have to
consider the case of checking the bounds of a different thread than the
one the engine was created in. Furthermore, we get a more accurate
number now, which means we don't have to re-check when we get near the
boundary.

Also, change QV4::markChildQObjectsRecursively() to use an actual
QQueue instead of being recursive. This avoids the stack from overflowing when the stack is already almost full, and was leading to
crashes in the stackOverflow tests.

Make the stack smaller for the the tst_qquickloader::stackOverflow{,2} tests to run faster in the CI (and avoid the timeout).

Task-number: QTBUG-106875
Fixes: QTBUG-108182
Change-Id: Ia5d13caa7d072526ff2a3e1713ec7781afc154a9
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2022-12-09 20:04:56 +01:00
..
subdir
ActiveComponent.qml
AnchoredLoader.qml
BigComponent.qml
BlueRect.qml
CacheClearTest.qml Loader: Actually clear initial properties when changing source 2019-10-24 13:24:55 +02:00
Component.qml QQmlComponentPrivate::setInitialProperties: Do not silently swallow exceptions 2021-01-18 14:58:30 +01:00
CreationContextLoader.qml
GraphicsWidget250x250.qml
GreenRect.qml
InitialPropertyValuesComponent.qml
InvalidSourceComponent.qml
NoResize.qml
NoResizeGraphicsWidget.qml
QTBUG_16928.qml
QTBUG_17114.qml
QTBUG_30183.qml
Rect120x60.qml
RedRect.qml
RequiredPropertyValuesComponent.qml Introduce required properties to QML 2019-09-09 09:21:23 +00:00
SetSourceComponent.qml
SimpleTestComponent.qml
SizeGraphicsWidgetToLoader.qml
SizeLoaderToGraphicsWidget.qml
SizeToItem.qml
SizeToLoader.qml
TestComponent.2.qml
TestComponent.qml
VmeError.qml
active.1.qml
active.2.qml
active.3.qml
active.4.qml
active.5.qml
active.6.qml
active.7.qml
active.8.qml
asynchronous.qml
bindings.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
boundComponent.qml Loader: Create bound components into their creation context 2022-11-28 14:11:34 +01:00
crash.qml
creationContext.qml
differentorigin.qml
empty.qml tst_qquickloader: Test setting source from component works 2020-11-11 09:35:51 +01:00
implicitSize.qml
initialPropertyTriggerException.qml QQmlComponentPrivate::setInitialProperties: Do not silently swallow exceptions 2021-01-18 14:58:30 +01:00
initialPropertyValues.1.qml
initialPropertyValues.2.qml
initialPropertyValues.3.qml
initialPropertyValues.4.qml
initialPropertyValues.5.qml
initialPropertyValues.6.qml
initialPropertyValues.7.qml
initialPropertyValues.8.qml
initialPropertyValues.9.qml Introduce required properties to QML 2019-09-09 09:21:23 +00:00
initialPropertyValues.10.qml Introduce required properties to QML 2019-09-09 09:21:23 +00:00
initialPropertyValues.11.qml Loader: Actually clear initial properties when changing source 2019-10-24 13:24:55 +02:00
initialPropertyValues.12.qml QQuickLoader: prevent clearing initial properties after active = true 2020-05-05 15:22:14 +08:00
initialPropertyValues.binding.qml
initialPropertyValues.error.1.qml
initialPropertyValues.error.2.qml
initialPropertyValues.error.3.qml
initialPropertyValues.error.4.qml
itemLoaderItemWindow.qml Remove QtQuick.Window plugin 2020-06-15 16:56:10 +02:00
itemLoaderWindow.qml Remove QtQuick.Window plugin 2020-06-15 16:56:10 +02:00
loadedSignal.2.qml
loadedSignal.qml
loader-async-race-rect.qml QQuickLoader: Do not incubate if the source arrives after setActive(false) 2021-09-23 18:29:20 +02:00
loader-async-race.qml QQuickLoader: Do not incubate if the source arrives after setActive(false) 2021-09-23 18:29:20 +02:00
loaderSelfSource.qml tst_qquickloader: Test setting source from component works 2020-11-11 09:35:51 +01:00
noEngine.qml QQuickLoader: Check for QQmlEngine before using it 2022-03-01 08:55:32 +01:00
nonItem.qml
overflow.qml QML: Check for stack overflows when creating objects 2022-11-11 17:33:12 +01:00
overflow2.qml QML: Add an accurate stack bounds checker 2022-12-09 20:04:56 +01:00
parentErrors.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
parented.qml
rootContext.qml Use SPDX license identifiers 2022-06-11 08:05:15 +02:00
sameorigin-load.qml
sameorigin.qml
selfSetSourceTest.qml tst_qquickloader: Test setting source from component works 2020-11-11 09:35:51 +01:00
setSourceAndCheckStatus.qml QQuickLoader: make sure the status property change properly 2020-08-22 15:59:12 +00:00
simultaneous.qml
sizebound.qml
sourceComponentGarbageCollection.qml
statusChanged.qml QQuickLoader: store status 2020-02-12 14:47:35 +01:00
vmeErrors.qml