The qsafeconstraints.h file has the following definition:
When testing the capacity test variant B with 128 safe images, and the states and transitions are defined in the root level (not under the safe QML type), the runtime throws outOfCache exception in the qsafestatefilereader.cpp file (row 86)
The QML file has maximum 128 safe images, and there are 8 states in total. Each state contains animation for each QML object.
The loaded transitionReadBuffer has a size of 905379 in this case.
The temporary workaround is obvious to increase the buffer:
But then another issue is spotted:
qsafestateloader.cpp throws QSafeAnimations::IndexOutOfBounds exception
See line 253-260
transitionsCount has value of 7168.
While the limit is defined in the safeconstraints.h file:
This seems to equal ((8*8) - 8) * 5U = (64-8)*5U = 56*5U = 280U
So the default values seem to work for smaller cases than the maximum capacity.
That yields a smaller memory footprint, but the capacity requirements are not met.
Maybe some explanations would be needed in the documentation FAQ part for tuning these settings if the user wants to balance between the capacity and memory footprint.