| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
With this change arbitrary debug connector plugins can be loaded by
specifying them in the "-qmljsdebugger=..." argument. It was already
possible to load them by using startDebugConnector(...), but that
requires source code modification.
Change-Id: I06ec7f54ec65add7cff2846ed4083ea878a04765
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
| |
There is a native debug service that can be used with a native debuger
and the QML profiler can make use of the debug messages service.
Change-Id: Ie1b2b148e7555d980e03a18c97ec725748c473c7
Reviewed-by: hjk <hjk@qt.io>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4object_p.h
Change-Id: Iff4d3aba7710a999b8befdc493cbe959e1ce02f9
|
| |
| |
| |
| |
| |
| |
| |
| | |
Converting a constant to null or undefined shouldn't happen
in practice, but it still shouldn't run into the Q_UNIMPLEMENTED.
Change-Id: I994a55defd7f4e29628732a8a9071bc785a80ee2
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
QQmlListReference passes a QLatin1String in, which can behandled by the
stringCache just fine. So if there is a cache entry, then this will skip
toQString conversion.
Change-Id: I13afe4f6e63d486b313ac58cbd86fb7f9e1a80f6
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/jsruntime/qv4string.cpp
The conflict resolution for qv4tsring.cpp is to essentially omit the
change of commit 64714ea431f2fd355ed27edc69dba4e992511e75 as the code in
5.8 already uses the add/mul_overflow functions.
This merge also reverts commit f4ac007f4a19bc095ff15d415a6629986de78e49
as we can deal with dead store elimination now.
Change-Id: Iee08c87cbe1a2ff23a73ce621d56262b4e007c56
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qmldevtools/qmldevtools.pro
tests/auto/qml/qqmlconnections/tst_qqmlconnections.cpp
Change-Id: I12255c16716bd8a74e7047cdb1f9302a4d1ea827
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Id7c8c7080e6db8bb6d09c1df13cddaef047cf611
Task-number: QTBUG-56499
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A wrong overflow detection caused strings like "240000000000" to pass
the conversion, even though they would not fit into a uint when
converted into base-10. This mis-conversion to uint then caused
all sorts of side effects (broken comparisons, wrong listing of
properties, and so on).
So, properly fix the overflow detection by using our numeric private
functions.
Change-Id: Icbf67ac68cf5785d6c77b433c7a45aed5285a8c2
Task-number: QTBUG-56830
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Same workaround as for gcc 6.0
Change-Id: I6137b226c05ddc287bea7230d1f546c5fcf8371f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
GCC would often generate a call to a special "safe" version of memset,
which would in turn prevent inlining in many cases. A simple for loop
does not prevent inlining, and compilers can still decide to replace it
with a memset. It also makes it easier for the compiler to do dead store
elimination.
Change-Id: I60fa3e321c2edb9225699bf57e8a31a3f8356ddc
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Task-number: QTBUG-57007
Change-Id: I05cabe53e7993cd63498334e95917fe6c3077ab6
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... to make good use of QL1S
Change-Id: I7c3ac1cefb30bee9baa31a3f8ec08f5f57eb5d5b
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is particularly useful for keeping the versions of related modules in
sync. For example, when QtQuick.Controls introduces new types or revisions
and bumps up the minor version, qmlRegisterModule() can be used to make the
same version available for QtQuick.Controls.Styles in case it doesn't have
new types or revisions to register.
[ChangeLog][QtQml] Introduced qmlRegisterModule() that can be used to
make a certain module version available, even if no types or revisions
are registered for that version.
Change-Id: I5ec457465cd778bb0adda55771d195f69cd4b31a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QV4DebugService and QQmlNativeDebugService cannot coexist at the same
time. Thus, there is no point in putting them into one plugin.
Change-Id: Ic042f7472fce23d504c62ccf96756b0f1bd68534
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... and drop redundant 'virtual'
Change-Id: I2a57685e342208d7ef1f13f97a56cb3ff7a31422
Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I318fa243ab68b8a714923ab816d62e8c544fca8c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Recude memory allocations.
Change-Id: I259e47e3c47a562817d1b9585a89c9f8a00260c0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Now we can pass 'name' arg as QStringRef. Client code can
reduce allocations.
Change-Id: I444f7135f4912f54d57e0a1193f330a3976fc186
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In preparation for the removal of Qt's own type traits.
Change-Id: Ie97b6a62b2e3f5e5c59b5175ef05cf8c342746db
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
tools/qmljs/qmljs.cpp
Change-Id: Ifa9e74bdb780eaff22fbc9ba1c514d0078a3fb29
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
tests/auto/quick/qquicktextedit/BLACKLIST
Change-Id: I0b9e5bea5da5d2666887c202e62d889b4aa56900
|
| | |\|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/quick/items/qquickwindow.cpp
tests/auto/quick/qquicktext/BLACKLIST
tests/auto/quick/qquicktextedit/BLACKLIST
Change-Id: I8bd68b0b5e853b7908791d2cbddd18dd527c76ae
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
After commit 2afb54fb51091765f79548b0b057795bc3c6eb38,
Primitive::undefinedValue() uses setM() to clear out all bits.
Previously that code was #ifndef'ed out for the bootstrap build, but now
that we can do the correct boxing in host builds (as we know the pointer
size), we can re-enable setM() in bootstrap builds and fix this crash
that was a Q_UNREACHABLE() assertion.
Change-Id: I49036792c06c9a17272aba65261ab8f32beb2ad8
Task-number: QTBUG-56658
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
If you return a QObject with parent from a Q_INVOKABLE it *does*
get QQmlEngine::JavaScriptOwnership. It just doesn't get deleted
by JavaScript (until you unset it's parent).
Change-Id: Id56debe06253ea1dd31dee844f5047d4ac055024
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Import::type used to be a quint32. The switch from quint32 to quint8
changed the alignment of other structures in the compiled blob. On QNX,
the alignment isn't appropriate for some of the instructions that the
compiler uses to access/modify the structures and a BUS error occurs.
Changing Import::type to LEUInt32 puts the alignment back the way it
was before. Simpler than trying to figure out how to get everything
aligned correctly with a quint8 at the front of the structure.
Task-number: QTBUG-56341
Change-Id: Ia6f4daff5f615f9c5dbcc34ce8c3c9a89bab2b69
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
... so the fast-path doesn't get bogged down by accidental slow-path
inlining.
Change-Id: Ifb3eadf5e96b5a61f41fb1f0d32269e43f13be57
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When trying to merge the second (original) loop header block of a peeled
loop, we would end up with dangling references to that block from the
loop body blocks. There's no trivial way to find all these quickly from
the header, so for now don't merge these blocks into the predecessor.
Change-Id: I2b5e39c5596ffd8c21ca9871af3a8150a019f2a8
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This also requires mapping the label pointers in the byte code back to
the instruction enum. Fortunately this reverse mapping is only needed in
the qmljs case. Normally in the QML engine we persist the byte-code to
disk before linking the compilation unit to the engine (where we map the
enum to goto labels).
Change-Id: If0b79288274bb1031161841b63a85f164502aaec
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Use std::greater
Change-Id: I30554cd85b05e8c6ce13402d4b318751315cd0e6
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These methods do not modify objects.
Change-Id: Iefe8effa97e6f6142308d61d57d08f9dc14a7709
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\| | |
| | | |
| | | |
| | | | |
Change-Id: I171c7dbb6a74fe743c2eec63e86e9c0bef7c7dfd
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When lookups are enabled for property access and the property exists, we
change the type of the lookup from the generic fallback to a more
specialized direct property access. When upon subsequent access the
internal class has changed, we fall back to the case of two alternating
classes/shapes. If during that fallback we fail to find the property
altogether, then we should revert back to the overall fallback, instead
of continuing with an invalid property data index.
Ran into this while running the typescript compiler in V4 itself.
Change-Id: If5975d6c18ff41b9fb21c40f0cbaeed37da4b489
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We need to always include the checksum generating code, even if dummy
(for the lack of the md5 code being in the bootstrap library).
Change-Id: I3dd9c585a23ffea9bd7c79dbe6dae29b9f93fa6d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
And hint the compiler (with LTO) to never inline the slow path.
Change-Id: Idad15498bca457d3f1f063031ad1a08415e9b3db
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/quick/items/qquickitemsmodule.cpp
tests/auto/quick/rendernode/tst_rendernode.cpp
Change-Id: I90582df69feb95a4e4aafb0b9793c23714654f19
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Complete the patch for tautological-compare warnings after it was
merged form 5.6.
Task-number: QTBUG-56266
Change-Id: I39f25f429b90deb8d8830fb15f45ce29a5a4c51c
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | |\ \
| | | | |
| | | | |
| | | | | |
Change-Id: Ib31008e593442ca5813fb14ae6b02f7ab2577395
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
With the cache files it is tricky to do changes to the code generator
and it is easy to forget that the cache files need to be re-generated.
So facilitate this, we add the sha1 checksum of the QtQml library to the
checksum embedded in the cache files.
This is currently only implemented on Unixy platforms and it is limited
to developer builds with shared libraries. This is not intended for
release builds.
Change-Id: If59f31f700254f7e9c6e3384d2fae4e5396fb698
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The common case is that the property cache and the QQmlData itself are
already created. By splitting the creation off into a slow-path method,
these simple methods are cheap to inline.
Change-Id: I73c702b5e66f35379647946a0c431561fd87499b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We use an MD5 checksum over the meta-object data to verify that the
types a QML file depends on haven't changed since the cache was
generated. However when the dependent types are QML types, then the
meta-object data contains dynamically generated type names such as
QMLTYPE_1234, which is non-deterministic. To address this, we resort to
the checksum over the meta-object data only for C++ types (if those
change it's likely an incompatible change) and for QML types use the
fact that all the information about the QML declared types comes from
the QML file only, which means we can in that case simply use a checksum
over the QV4::CompiledData memory chunk.
In addition we need to ensure that the generated CompiledData memory chunk
is deterministic by avoiding any uninitialized bytes (memset) and using
a map instead of a hash for the mapping of object index to object id.
Task-number: QTBUG-55926
Change-Id: I27c840b1960ad36b486198e504b70989c22a3972
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
And also hint that wrap_slowPath should not be inlined with LTO,
otherwise the fast-path wrap method will lose any advantage it has.
Change-Id: I30d52fa2f64b813aaeb5c0d62f6d48ec1ba03fa1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Reduce memory allocations.
Change-Id: Idfa6284757524396e6154cf8150be4228e9218be
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
[ChangeLog][QtQuick] Add Qt.application.displayName property.
Task-number: QTBUG-53091
Change-Id: I810eb381ac8e6151cbc07f3f66f2e661ff3e09f4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|\| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Conflicts:
src/qml/jsruntime/qv4variantobject.cpp
src/qml/types/qquickworkerscript.cpp
src/quick/scenegraph/util/qsgdefaultpainternode_p.h
tools/qmljs/qmljs.cpp
Change-Id: I876242714ec8c046238d8fd673a5ace2455b2b59
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
For loading and verification we compare against the time stamp of the
executable, so we should do the same thing when generating the cache
data.
Task-number: QTBUG-55926
Change-Id: If5922e76b8ae86185f6eacb6aeeb5c3afbc1f8d5
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
When QQmlMemoryProfiler is not used, do not convert the filename URL of
a component to be converted from QUrl to a UTF8 char array.
Change-Id: I741ec5b58678f3a25badac38f0198c9cff203eb1
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\ \ \ \
| | | |_|/
| | |/| |
| | | | | |
Change-Id: I175b27337b534c0b8f46a4a792d2c43cde73ffc4
|
| | | |/
| | |/|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
These two were mixed, but have completely different values.
Task-number: QTBUG-56471
Change-Id: Ifbf6da3032335ea89bfbc3acde17f64a571b9dc0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We can't both invert offset position and inter-value positions of tag
and value.
This patch changes 32-bit big-endian to use the same order inside
the tag/value but just at different offsets. This also make it
compatible with how we use it with doubles.
This fixes value/tag reads on 32-bit big-endian and offsets on 64-bit.
Task-number: QTBUG-56271
Change-Id: I95cf792c29ac3f42a4018ce1f115193c143a0df0
(cherry picked from commit 2a658344397729450f869138bf77e063a0a6166b)
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|