| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Instead use QT_CONFIG(foo). This change actually detected a few
mis-spelled macros and invalid usages.
Change-Id: I06ac327098dd1a458e6bc379d637b8e2dac52f85
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\ |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The renderers added in 5.8 had to be adapted to the changed profiling
macros from 5.6.
Conflicts:
src/plugins/scenegraph/d3d12/qsgd3d12renderloop.cpp
src/plugins/scenegraph/d3d12/qsgd3d12threadedrenderloop.cpp
src/quick/scenegraph/adaptations/software/qsgsoftwarerenderloop.cpp
src/quick/scenegraph/adaptations/software/qsgsoftwarethreadedrenderloop.cpp
src/quick/util/qquickprofiler_p.h
tests/auto/qml/qjsengine/tst_qjsengine.cpp
tests/auto/qml/qqmlvaluetypes/tst_qqmlvaluetypes.cpp
Change-Id: Icb370b7c95aab12589ad73881ac6d178759a5c6b
|
| | |\
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/qml/compiler/qv4ssa.cpp
src/qml/qml/v8/qqmlbuiltinfunctions.cpp
src/quick/util/qquickprofiler_p.h
Change-Id: I11a89c2a166115d6697adfba09928805643e709e
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: Ie86302f12d4ad65ff46335a1ea248bbb4c5559f3
Task-number: QTBUG-56008
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The profiler can be switched on in the middle of a frame. In that case
the last offset into the timing data would be some random number, which
may lead to a crash when recording the sample.
However, as we know all the data points we are going to record, we can
as well specify where they are supposed to go. The timings themselves
may still be random for frames of which we only recorded parts, but
the clients can deal with this.
Task-number: QTBUG-57304
Change-Id: I1d507f2591516e43d5b3cd25f7939716f2b64ed9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
When checking for undefined, both the tag and the value need to be
checked. When loading the tag, it shouldn't end up in the same register
that is used to hold the address of the QV4::Value.
Change-Id: I380fce432ba489fdabe569dd2c9cac31e9905260
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
For example during dead code elimination we may invalidate statements,
but at the same time there may still be instances left in the work list
of optimizeSSA(). When we encounter then, we should not process them any
further.
Task-number: QTBUG-56255
Change-Id: I4c24b1a225ce1bde112172e9606f91c426c19f19
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Relies on qtbase/f2205c48c21a6b135f2f59d0cf46e72f90f9f0f4.
Asking QFontDatabase whether or not the font can be smoothly scaled is expensive
Now that the attribute is available on QFontEngine, we can bypass all that.
Benchmark results from qmlbench on creation/delegates_text on a 2011 mbp.
Before: Average: 173.2 ops/frame; using 5/5 samples; MedianAll=173; StdDev=1.94, CoV=0.0112 - StdDev (all samples included)=1.94
After: Average: 180.8 ops/frame; using 5/5 samples; MedianAll=182; StdDev=1.94, CoV=0.0107 - StdDev (all samples included)=1.94
Change-Id: I56efd903037a29ee014de0cbf482cfbef7fce494
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This is a regression from commit
4876ea6a18ccdfd72014582aa5d50ab9f6b6ec9e, which avoided returning an
expensive QObject when calling get() but also lost the ability to
perform binding captures when accessing the properties. This change
restores the captures by performing them by hand in get() and also
triggering the notifiers directly when the values change, without
creating the QObject.
Task-number: QTBUG-52356
Change-Id: Ia429ffafd4032b63d3e592aa63bb0864a24e0965
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
"string" is the argument type, not its name.
Change-Id: Ia8f1afe01363eb6bfa69247aca5c0849c56000c4
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
QMetaProperty::type() maps an un-registered enum to QMetaType::Int, and
so if a property cache is created for a gadget with enum properties,
then their type will be int and we'll correctly read enum properties as
ints in JavaScript. However if the enum is registered at the time we
create the cache, then the property type will be the specific type and
not QMetaType::Int. The property reading code in QV4::QObjectWrapper can
deal with that, but the property reading code in the gadget value type
wrapper code did not.
[ChangeLog][Qt][Qml] Fix reading of enum properties from gadgets / value
types when the enum was registered with qRegisterMetaType().
Change-Id: I7812b216a276dcc95c36e313507e1a1142250d0b
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Change-Id: I33ca6140d89041f89f0e3db9db7206aca50361d7
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This should make (properly functioning) static code checkers stop
complaining.
Task-number: QTBUG-57025
Change-Id: Ic7e6f1b0b02f2e9324dbc891ab4620d53d9f9a18
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | | |
Format error messages via struct _com_error.
Change-Id: Ice755597ec56a106e9fc5ac0288b69d9411a6ea8
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Replace the hand-written gc and print functions with the print and gc
functions also used in Qml and QJSEngine. And while we're at it, this
also adds the console object.
Change-Id: Ia3a0ff24936b7ed5149cb689838b987f9178131e
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Change-Id: I531d53c81d5ab19bba22f883bc802ecc8d02590d
Task-number: QTBUG-57234
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The method_convertThisToObject method was invalidly tagged as not
needing exception checks. As a side-effect method_pushCatchScope and
method_popScope are now correctly tagged with a NoThrowEngine.
Change-Id: I11d987e62136216a29eadcbd641546311030058f
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-49033
Change-Id: I2e8157f8d2b40299799cbf31b424060ff89ab75a
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The grammar was not permitting to write
default property list<Item> myChildren;
and instead developers had to work around it with an alias
property list<Item> myChildrenData;
default property alias myChildren: myChildrenData
which is not nice. Fortunately this is easy to fix in the grammar.
Task-number: QTBUG-10822
Change-Id: I4e914ddb9588913da09e9fb6c6aa154cf8a9e18f
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Commit 45bd04ba73bd3e71c070e5724535ba87f6771323 changed the embedded
license headers to the $LGPL tag but accidentally removed the header
that is embedded in the output.
In addition there have been changes to the generated code that were
not reflected in the .g file.
With these changes the qlalr output matches the files that are checked
in.
Change-Id: I693e20cf5237098425ba79182089d213179e6dfa
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Use the right function for converting a qrc:/// url to a local path.
QUrl::toLocalFile() gives us an empty path, which prevents us from
getting a time stamp and comparing it against the stamp in the cache
file.
This fixes disk caching with samegame.
Change-Id: Id3eb270f1f7a7f25143d2f075a45f32bdb0384c5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Move QSGDefaultImageNode::rebuildGeometry(),
QSGDefaultNinePatchNode::rebuildGeometry() to
QSGImageNode::rebuildGeometry(),
QSGNinePatchNode::rebuildGeometry()
respectively.
This makes it possible to use then from the D3D12 plugin
when built without OpenGL support.
Task-number: QTBUG-57185
Change-Id: Ib88c5622f7048618151a63d7536d76296a25842e
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Relies on qtbase/094b64fb605b39d1ae88d91d2b9a0672b9ff4780.
This was previously responsible for around 1.1% of CPU samples when profiling
text creation & rendering under qmlbench.
Change-Id: I287067b994231a39881ba8208ad3b802233c7486
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I60e674760725d4c4dd13f53b31c3abb6b09c1790
Reviewed-by: Simon Hausmann <simon.hausmann@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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
af002b8df9b084fd7f26e9eead9844aab36bdc4d added timestamps to press and
release events. It did not add the timestamp to move events though. When
using the quick test functionality to send events to flickable, this
leads to great confusion since the move events will be from a completely
different time than the release, in which case flickable responds with
"you waited a long time before releasing, I think you didn't want to
flick". Adding the timestamp also to move events is consistent and makes
tests in qtlocation happy.
Change-Id: I33653c435eff5b62eeaf5a03653d917b7acc4fed
Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu>
Reviewed-by: Paolo Angelelli <paolo.angelelli@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
GCC5/6 do aggressive dead store elimination on memory passed to
placement-new. This resulted in the Heap::Object::prototype being a
nullptr. qml.pro already contained the -fno-lifetime-dse flag, but there
are other places where we ask the memory manager to allocate data.
This is temporary band-aid, and is already fixed in 5.8.
Change-Id: Ia61a69f65fab351068a588cfc36b5b3d762ffc9f
Task-number: QTBUG-56932
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
qquickitem_before_paintNode returns the transform node for the rectangle
as child node. But the node has no parent. It leads to following assertion
case at QSGNode::insertChildNodeAfter(). But, I tested it in release mode,
so no assertion happened. So, Some node not be able to add group node
from this cause.
Task-number: QTBUG-56657
Change-Id: Ie032dc6c56984bcb58cfcd348ff532f56e39e5b8
Reviewed-by: Inhye Seo <inhye.seo@lge.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The code was using the ::glGetString function and this could fail
if we are using a custom platform plugin.
Change-Id: Idb9ccd178ea52255b9d6f0f6d3fd529094c15292
Reviewed-by: Laszlo Agocs <laszlo.agocs@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>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: I24a186af0538027719beb464c2b489825ddd9420
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Atlas::create returns null when allocating space in the atlas texture
fails, including when the texture is full. Manager::create assumed that
this function would never fail.
Change-Id: I2ed8a1b94640d6a3cc65011e83b88f8bd42ca074
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In a3da23d5a92ab0f9b8280b9ed591986f8ac6a2d6 we added linear filtering
to the image node in rich text when smooth was set to true (which it
is by default). But we also enabled mipmapping, which caused a bad
performance regression when updating the text item.
If we want to support mipmapping, we would have to add a separate
property for this like in the image node, but since the original
bug report only called for supporting smooth scaling like in
Image, we can simply revert part of the change.
[ChangeLog][QtQuick][Text] Fixed a performance regression when
rendering a rich text item with scaled images.
Task-number: QTBUG-54723
Change-Id: Ib930112b76f0fe0b2e658f86520a9290354b8f6f
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
RichText can have blocks of text with varying font sizes, so we must
ensure that the cursor delegate's height is also set when it's moved to
a different position in the text.
Change-Id: I00691a94a2360c7d3272571fc4ba0da28b01006a
Task-number: QTBUG-54934
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
|
| | |
| | |
| | |
| | |
| | | |
Change-Id: Idcc23782f2ed382914a74740ad9f2984d7a98f78
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If the block is right-to-left and starts with a text object, it
should be aligned to the right edge of the QTextLine instead
of the left one.
[ChangeLog][QtQuick][Text] Fixed placement of flowing text objects
in the start of a right-to-left block.
Task-number: QTBUG-43133
Change-Id: Id790e88f3464280f124c38b4260386b84cac8826
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This difference is only used by the ListView, so calculating it and
storing it (on the stack) introduces a penalty for all items. As the new
geometry is already applied, the old geometry is passed along. This has
the added advantage that the ListView does not have to re-calculate that
either. This fixes a performance regression.
Change-Id: Id5e67bb663a5b11a55ec15ff24ca5b213d1fcef5
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since eea8fa64ab27854b71f46ef143e35b6c9acbba14, we're seeing increased
times in QSGNode::removeChildNode(). The reason for this seems to be
that iteration through the linked list is significantly slower than
iteration through a QList<> due to that each node needs to be loaded
in memory to iterate to the next, compared a more plain sequential
pointer compare with QList<>.
This implementation changes the nodes to use a circular double-linked
list so we can drop the iteration when removing nodes. This brings us
slightly better performance than the original QList based
implementation while still using the same amount of memory as the
single-linked list one.
Change-Id: I0b693730f5b82ad7767e507accafd90551e03fbc
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Some signals (ie onClosing) as marked as error by QtCreator because
they are registered with version 1 or 2, while QQuick is exported only
as version 0. Exporting version 1 or 2 of QQuickWindow seems to cause
some conflicts with QQuickWindowImpl. So the plugins.qmltypes has
been manually updated.
Task-number: QTBUG-47917
Change-Id: I2ddacfbf0564d8ecfbaadc0323011dbd18439c36
Reviewed-by: Erik Verbruggen <erik.verbruggen@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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When assigning an item a new parent item, a check is done if it is
already part of the children tree below that parent. This is an unlikely
case, so hint the compiler that it can optimize the loop that way.
Change-Id: Ic9f1810aa4b83d84be88f0049e61d21c4add7767
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-57007
Change-Id: I05cabe53e7993cd63498334e95917fe6c3077ab6
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In the case where there are no change listeners, there is no need to
do an ref() operation (which involves atomic loads) only to find out
that it's an empty vector (!isSharable). Better still: the whole loop
start-up can be skipped.
Change-Id: I94fd22029a321a5dbef571145007071a54f5b04b
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Storing the anchor-loop-detection counters in a bitfield has the
disadvantage that the full field has to be read and masked in order to
use (increment) them. The same for the subsequent store. By putting them
in their own byte, this can be done a lot faster. Those bytes were
available, because they were needed for padding. By making them signed,
there is also no need for the compiler to insert overflow handling.
Change-Id: I3c250983c74de2ecfd33fe72ea8df04e24b8cd0c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|