| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qv4isel_moth.cpp
src/qml/compiler/qv4jsir.cpp
src/qml/jsruntime/qv4mathobject.cpp
Change-Id: I426f1f4f0a5302b5bcff021de11766a03fec7637
|
| | |\|
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
tests/auto/qml/debugger/qqmlenginedebuginspectorintegrationtest/tst_qqmlenginedebuginspectorintegration.cpp
Change-Id: I31375151eb239f348bec988d2d0506c2b4d9604c
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When creating a composite type, we register the meta-type in the qml
loader thread. However we would require linking of the compilation unit
to the QML/engine thread before we would be able to also undo that
registration in unlink(), because we require the engine member to be
set. If that did not happen, i.e. a qml type was loaded and trimmed from
the cache before it was ever linked, we would end up with a dangling
pointer in m_compositeTypes.
Let's handle the case of CompilationUnit referring to a QML composite
type separately from it being a compilation unit resulting from a .js
file or in a plain QJSEngine environment.
Task-number: QTBUG-62630
Change-Id: Ia68cc46f05345702bd9ba0378f61118f1964d141
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
It didn't do anything special anymore, so fold the last
small bit of functionality back into the base class.
Change-Id: Ic8f62e645b2742aa91f13f63adaf321353962bc5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
There's no point in allocating that vector of byte arrays,
if we can directly embed those int the CompiledData and
reference it from there.
Change-Id: I8fc92b1efaca5a9646f40fc84a2ac4191c8f3444
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: Iff06429f948ac6cdec77a9e5bb8c5375c56fe705
|
| | |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4qobjectwrapper.cpp
src/qml/qml/qqmlcustomparser.cpp
src/qml/qml/qqmlimport.cpp
src/qml/qml/qqmlimport_p.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypenamecache.cpp
src/qml/qml/qqmltypenamecache_p.h
src/qml/qml/qqmltypewrapper.cpp
src/qml/qml/qqmltypewrapper_p.h
src/qml/qml/qqmlvmemetaobject.cpp
src/qml/util/qqmladaptormodel.cpp
Change-Id: Ic959d03e6f9c328fb02710d9abbb0f27cddde131
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Allocate the strings in the compilation unit as regular strings, not as
identifiers. We mark the runtimeStrings in the compilation unit, so when
the unit is released as part of component cache trimming, those strings
can also be collected. The JS object literal class keys have to remain
identifiers though.
However this is just a stop-gap as the real problem is that the
identifier table can be triggered to grow without bounds.
Task-number: QTBUG-61536
Change-Id: I7a2854b7fa9c9953348b5e34a31833f7be67cfbf
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is a pure metatype id to metatype id mapping, nothing
in there is specific to a QML engine instance. Thus move the
mapping to QQmlMetaType and make it global for all engines.
Task-number: QTBUG-61536
Change-Id: I3792567bc9f585e3e0fbbad94efd1ec3a0db3de0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is where it belongs, and it makes the PropertyCache independent
of the engine used.
Task-number: QTBUG-61536
Change-Id: I21c2674ee3e2895abd2418764d140b154b47b868
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQmlType is now refcounted, and we need to use it by
value, to control it's lifetime properly. This is
required, so we can clean up the QQmlMetaTypeData
cache on engine destruction and with trimComponentCache()
Task-number: QTBUG-61536
Change-Id: If86391c86ea20a646ded7c9925d8f743f628fb91
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | |
| | |
| | |
| | | |
Change-Id: Ibb24b0a55dd94e03fea3104e8af5ddb266004300
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
.qmake.conf
src/quick/doc/src/qmltypereference.qdoc
Change-Id: Ia58f1c5a98309c32ef8d8e5c893faf261215f19f
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Commit be491913c036b148 changed QV4::CompiledData::Unit to use LEUInt32
structures internally, rather than native uints, however the generators
were not updated at that time and still wrote native uints.
Also initialize constants field of CompilationUnit to prevent crashes
in unlink() where operator delete[] is called.
Change-Id: Id6c6e6ad519c9927ba6027479689ecfde9ea86de
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The indexed getters and setters haven't been used for a while and
don't offer any performance benefits currently.
Change-Id: Ifd5e1fab934e6e9940c4f1ad67f8850f04597504
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Remove all files from the old compiler pipeline that are now
unused. This includes the whole IR, JIT code generation,
and the old Moth Isel.
Change-Id: I50d06abfbcf0e9755a54ed94638f8bb74f9512b1
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | |
| | |
| | |
| | | |
Change-Id: I085da80bf335d3fbe707f6b460381f0e828328e0
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | |
| | |
| | |
| | | |
Change-Id: I1e3728481dab97b264f19f84edd602f9eae66983
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |/ /
| |
| |
| |
| |
| |
| |
| | |
Move the code that generates the CompilationUnit over to Codegen,
and don't use the ISel's at all anymore when compiling JS/QML.
Change-Id: Iba89082c386c3d3fd58ac25a4651c5d39178cc5c
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| |\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qv4codegen.cpp
Change-Id: I3c41b9fc9ba7d41741e4dd400402ae80dd7726d9
|
| | |
| |
| |
| |
| |
| |
| | |
For example, if they are installed into system paths.
Change-Id: Id14ccfbe57c5bcf273c79510034dc20400073451
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
src/qml/jsruntime/qv4argumentsobject.cpp
src/qml/jsruntime/qv4arraydata.cpp
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4errorobject.cpp
src/qml/jsruntime/qv4functionobject.cpp
src/qml/jsruntime/qv4internalclass.cpp
src/qml/jsruntime/qv4lookup.cpp
src/qml/jsruntime/qv4managed.cpp
src/qml/jsruntime/qv4managed_p.h
src/qml/jsruntime/qv4object.cpp
src/qml/jsruntime/qv4object_p.h
src/qml/jsruntime/qv4qmlcontext.cpp
src/qml/jsruntime/qv4runtime.cpp
src/qml/jsruntime/qv4vme_moth.cpp
src/qml/memory/qv4heap_p.h
src/qml/memory/qv4mm.cpp
src/qml/memory/qv4mm_p.h
src/qml/memory/qv4mmdefs_p.h
src/quick/scenegraph/util/qsgdistancefieldutil.cpp
src/quick/scenegraph/util/qsgdistancefieldutil_p.h
tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
Change-Id: I7ed925d4f5d308f872a58ddf51fdce0c8494ec9c
|
| | |
| |
| |
| |
| |
| |
| |
| | |
And store them in an enumerated array. This will simplify
upcoming changes.
Change-Id: I82eac03b9f6264843ae625e36e150464fe08be9d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| |
| |
| |
| | |
Change-Id: Iad67b9719fe6336b8dfc28de2e88463c588a0849
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\ \ |
|
| | |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/jit/qv4assembler.cpp
src/qml/jit/qv4assembler_p.h
src/qml/jit/qv4isel_masm.cpp
src/qml/jsruntime/qv4vme_moth.cpp
Change-Id: I865d794e550a263387a39ca8d051ebf48b70cbc0
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The use of sha1 to determine if there were any changes in the Qml
library in developer builds (for cache invalidation) works well, but it
results in timeouts when running tests on ARM as type compilation takes
too long. This is a developer feature and we might as well use a faster
hash such as Md5 that is sufficiently reliable for our purposes.
Change-Id: I917ae619c73a9cc821d888f16bfcccafeb8ebacc
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: Iaa4138610834f87b2a9379e707025d2e8a0fd59c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Remove the code related to the Steele write barrier and incremental
garbage collection.
This is in preparation for a fully concurrent GC, that will not have
and incremental mode and will use a Yuasa write barrier.
Change-Id: I155a85211c5be61e792e056321fbceaee47c0d87
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This is required to be able to implement concurrent or
incremental garbage collection.
Change-Id: Ib3c5eee3779ca2ee08a57cd3961dbcb0537bbb54
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\|
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jsruntime/qv4functionobject_p.h
Change-Id: I4bbed45f1fe02cf64df3c8a5f92f811e38e772f3
|
| | |\ |
|
| | | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/compiler/qqmltypecompiler.cpp
src/qml/compiler/qqmltypecompiler_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/qml/qqmltypeloader_p.h
Change-Id: I4894555ab7a0879b56bbda7a46d16d1c40c19e7c
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Instead of passing the engine parameter all the way through the data
structure generator, along with the dependent type data structure that
is unused otherwise, let's simply provide a function object for the
dependency hashing.
This is also in preparation for adding singleton types to the dependency
hash.
Task-number: QTBUG-58486
Change-Id: I5bb5e5c06b7b5c77195cec3da13141333cfea7a8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |\| | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/plugins/qmltooling/qmldbg_debugger/qv4datacollector.cpp
src/qml/jit/qv4assembler.cpp
src/qml/jit/qv4assembler_p.h
src/qml/jit/qv4isel_masm.cpp
src/qml/jsruntime/qv4context.cpp
src/qml/jsruntime/qv4context_p.h
src/qml/jsruntime/qv4engine.cpp
src/qml/jsruntime/qv4vme_moth.cpp
src/qml/memory/qv4mmdefs_p.h
Change-Id: I9966750b7cd9106b78e4c4779f12b95a481cca40
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
For timestamp comparison it is not necessary to create another
QFileInfo() object and call exists() and lastModified(), when we can
pass that information through from the type loader.
Change-Id: I225cd36e672f1f390bddb4e6ebfafa3fc1269795
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
For offsets from CompiledData::Unit we can use C++11's offsetof macro as
the class has standard layout.
Change-Id: I7377294679a9cd79c35486fa34355933271f9251
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently we only use the runtimeStrings offset in JIT generated code,
so move that into a standard layout base class and use that instead.
Task-number: QTBUG-58666
Change-Id: Id933ba5df3a6990e89886c2b328e9e814ec5e413
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |\| |
| | |
| | |
| | | |
Change-Id: I0ec164ce6e8099e6e4d6b40a3c7340737473ef4b
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The original directory of the source file the cache was created from -
when generating ahead of time - is unlikely going to be identical to the
final location for example on a deployed device. Therefore when
generating caches ahead of time, don't store the source path, don't
attempt to verify it when loading and don't try to save the cache file
at run-time again.
We still need set the sourceFileIndex at load-time though, in order to
make relative path url resolution work (for example source: "my.png" in
an Image element).
Change-Id: I3d6952f5d0a165cfa2cb400191a9f6ffe6be69f4
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Cache files created ahead of time do not require a timestamp match
towards the source file. This is because we cannot guarantee that all
transport mechanism from source to deployment preserve the timestamp at
the required resolution (if at all) and the source may also not be
present at all (obfuscated deployment chosen).
For cache files created at run-time however we'll continue to require
time stamp verification.
Change-Id: Ia7cdf3d063edd5bb1e6985089f1a666c970a0bd0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The offset of the runtimeStrings array differed between a V4_BOOTSTRAP build
and the regular library build. This is an intermediate fix until QTBUG-58666
is fixed properly.
Change-Id: Id1310ffa82f1079c1acef7730db41186fa62610f
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add support for specifying the output file name
Change-Id: I3ec3cecae2334a7640baa928c0739c5521496d2d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Add an incremental mode to the garbage collector, that will
get used for many collections. This should significantly
reduce average stop times for GC.
Make sure that manual calls to gc() still do a full collection,
to ensure consistency and keep tests that rely on gc() working.
Change-Id: I87b13529377b7639ce993dbd99e85ff0a555acd8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is required in preparation for proper write barriers,
where we'll need to check the engine whether the barrier is
enabled.
It also makes the lookup calls more consistent, and doesn't
affect performance in any measurable way.
Change-Id: Ia838237a44ba809d4643e2626bc81560388276e2
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/compiler/qv4ssa.cpp
src/quick/accessible/qaccessiblequickview_p.h
src/quick/items/qquickmousearea.cpp
src/quick/util/qquickanimatorjob.cpp
tools/qmlplugindump/main.cpp
Change-Id: I84474cf39895b9b757403971d2e9196e8c9d1809
|
| | |
| |
| |
| |
| | |
Change-Id: I31bcf56ee0c4ec9285dccb356b03b89e8ce8356a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As we currently lack the ability to do type resolution at AOT cache
generation time, we need to re-do the work after loading the cache file,
making us essentially only re-use the code and avoiding the step of
parsing.
Change-Id: I12844692d4766345d8a313b59d21abf1f868e2d1
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| |
| |
| |
| |
| |
| | |
Full definitions of types are needed in static_casts.
Change-Id: I028ffc40a76cdb16cb297a181b3d9dfe9d09c945
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| |
| |
| |
| | |
Change-Id: Ic3f1476b87bfa7ab0c280c928e9ac97f92698336
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|