They are generally not useful for anything.
Change-Id: I12e959ce9338e6eb7465633496c7921fa09a3fe8
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Files that have to be modified by hand are modified.
License files are organized under LICENSES directory.
Pick-to: 6.4
Task-number: QTBUG-67283
Change-Id: I63563bbeb6f60f89d2c99660400dca7fab78a294
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Follow the rule of 5: Drop empty dtors, and add Q_DISABLE_COPY_MOVE
where we do need an explicit dtor.
Change-Id: Icbb9d87e1087c69b1cf1f18062a496c148935783
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
We need to be able to access them from C++.
Pick-to: 6.2
Change-Id: I2b7b823cbb36866240d194e877a3dd49f5d2f350
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Add unused volatile pointers to the type registration functions in each
import plugin. We need to do this in order to prevent the linker from
optimizing the registration away. There are two ways for this to happen:
When linking statically, the linker will examine the referenced symbols
on a per-object base and leave out all unreferenced objects. When
linking dynamically, the linker may do the same on a per-library base
and drop any unreferenced libraries from the dependencies. Forcing a
reference to the type registration function prevents both.
The volatile technique allows us to remove the previous qCDebug() hack.
Having an unused volatile auto variable should only result in a single
memory read as runtime overhead. The qCDebug() technique would generate
a read and a block of mostly dead code (as no one would ever use that
logging category).
Fixes: QTBUG-81622
Change-Id: I255667276dfd355b19baa17b1aad3db406bf1954
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Some linkers can determine that we don't use any symbols from the
QtQmlModels and QtQmlWorkerScript libraries in the respective plugins
and avoid to link the libraries into the plugins. That means, when
loading the plugins, the types are not registered. We avoid that by
adding a debug message that accesses a symbol of the library to each
plugin.
Change-Id: I3d946259df96382a3751eaafa12cbdd3d830c139
Fixes: QTBUG-81721
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Previously it was impossible to determine whether a WorkerScript has
been fully initialized. This commit introduces a ready property that
allows outside Components to determine whether it is safe to send
signals.
Fixes: QTBUG-80413
Change-Id: I2a1892b5e759e317de791e71d79fbb0cbd320dd3
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Using this technique we can automatically register all necessary
revisions and minor versions of a type, using the metaobject system.
This greatly reduces the potential for mistakes and resulting
incompatibilities between versions of imports.
We assume that for each type we need to register all revisions of its
super types and its attached type, and that the revisions match. That
is, if you import version X of type A, you will also get version X of
its attached type and of any super types. As we previously didn't take
these dependencies into account when manually registering the types, a
number of extra revisions are now registered for some types.
Potentially, we can now generate the qmltypes files at compile time,
using moc.
Change-Id: I7abb8a5c39f5e63ad1a0cb41a783f2c91909491b
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>