Now that resolving the types can be more expensive, especially for composite types, we should be careful not to do it too often. Most of the cases where we have to resolve types are for lookups. Most of the lookups only resolve types in their "init" step, which ideally is only performed once in the application life time. However, so far calls had to pass the types of arguments and return values in the actual "lookup" step, which causes the resolution to happen on every call. This change moves those type resolutions to the init step. We can do this because: 1. Regular typed method calls are calls to a specific overload with specific types. The method itself already has the list of types and we can just remember which one that is. Then we don't need to pass the types. 2. Calls to shadowable methods are all-QVariant typed. The only thing we need to know is the number of arguments. Then we can construct the list of types in the lookup itself. We can remember which one of those we're dealing with by adding further "AsVariant" lookup functions. For the case of non-property-cached regular methods we also need a new "Fallback" lookup like we already have it for properties. Change-Id: I74a3729131d6a5ea0ad79e276965a5167cd609be Reviewed-by: Olivier De Cannière <olivier.decanniere@qt.io> |
||
---|---|---|
LICENSES | ||
cmake | ||
coin | ||
dist | ||
examples | ||
features | ||
src | ||
tests | ||
tools | ||
.cmake.conf | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
.tag | ||
CMakeLists.txt | ||
README.md | ||
configure.cmake | ||
dependencies.yaml | ||
licenseRule.json | ||
qt_cmdline.cmake | ||
qtdeclarative.doxy |
README.md
qtdeclarative
The qtdeclarative repository is home to QML, Qt Quick and several related modules:
- Qt QML
- Qt QML Core
- Qt QML Models
- Qt QML WorkerScript
- Qt QML XmlListModel
- Qt Quick
- Qt Quick Controls 2
- Qt Quick Layouts
- Qt Quick Local Storage
- Qt Quick Particles
- Qt Quick Shapes
- Qt Quick Templates
- Qt Quick Test
In addition, there are several Qt Labs modules: