aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/jsruntime/qv4profiling.cpp
diff options
context:
space:
mode:
authorOlivier De Cannière <[email protected]>2025-06-24 15:14:53 +0200
committerOlivier De Cannière <[email protected]>2025-07-02 14:44:04 +0200
commit5935a839482f010e13049f89ca30fa2793ee58a3 (patch)
treeb46a602600e6810e5c53886fb28728d9e84ea018 /src/qml/jsruntime/qv4profiling.cpp
parent6ead474c839c84788e18a6518726c60fd8b6399d (diff)
QtQml: Correctly track alias resolutions skipsHEADdev
When trying to resolve all aliases on an object, we iterate over them one by one. If all are resolved successfully, we return AllAliasesResolved and consider this object done, if an alias fails, we return NoAliasResolved or SomeAliasesResolved and we will try again later. This can be the case for aliases to aliases. We defer resolving the first one until the target alias is resolved first. There was a bug in the logic that counts how many of the aliases were successfully resolved and how many were skipped. When skipping an alias to an alias, we cannot count it among the completed ones. This leads to an alias not being resolved and added to the property cache. Thankfully, a runtime assert then catches the discrepancy between the number of aliases in the property cache and in the compilation unit. Early exit when detecting that the alias points to a non-local unresolved alias to try again later. Also update the aliasIndex as part of the for loop update. Amends 9e1378260a3f3a6eb4cad8d6ae47bc218e6a2b5f Pick-to: 6.10 Change-Id: I6ee7a796a0b4890393d5b17ebea2686c55955394 Reviewed-by: Ulf Hermann <[email protected]>
Diffstat (limited to 'src/qml/jsruntime/qv4profiling.cpp')
0 files changed, 0 insertions, 0 deletions