| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we remove a property from an object, we shrink the used entries
by one (or 2 when an accessor is defined) by moving subsequent entries
"down" over the removed entry. We also have to set the last entry (or 2)
to Undefined, otherwise any heap objects referenced there would be
retained.
This cherry-pick into 5.9 also fixes an issue where the MemberData was
accessed out-of-bound: some entries stored in memory after the array
were copied in, resulting in invalid pointers, leading to a crash
whenever the garbage collector would run.
Task-number: QTBUG-66090
Change-Id: I75905fafd0d88891820d894a869b9714bc9807e0
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 9e32901835de1c6729ac8bf228148c1e03c4c5a5)
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
It wasn't clear which values would be used when only a horizontal or
vertical flag was set.
Change-Id: I99b4a13a87b35a74f1ab80c5fafa9df621bf7b10
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-58223
Change-Id: Ibc599ac2e62aa60405af0022c7f5bab6eac3e3c4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit ff08272245c099cadd433c8b5d4f98301f5e585b)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a regression introduced with commit
3cc589c98390992e3ee8a7970dc2913ea857d623, which in turn fixed a leak
with QV4::QObjectWrapper objects. Unfortunately the allocate() call into
the persistent (weak) value storage in the list model introduced a leak
of the weak value itself. This is fixed by replacing the free standing
weak value allocation with the use of the existing jsWrapper weak value
in the declarative data (QQmlData). That weak value is freed property in
the destroy() method of the QV4::QObjectWRapper. The extra QQmlData
allocation is hidden behind a unified allocation, similar to what we do
in void QQmlType::create(QObject **, void **, size_t) const.
Task-number: QTBUG-66189
Change-Id: I5351e3e484542709a6b210e84aa19b14d28e11ad
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 22d43f74e264626d0c28654c42c91839f9de45b5)
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The JS stack is used as a worklist while marking in order to prevent
recursion overflowing the C stack. Now if all contents of an array are
pushed onto the stack, it can easily cause an overflow. To prevent this,
drain the stack periodically.
This is fix that should not go into 5.11, as it's already fixed there by
using a ValueArray that will have this exact behavior.
Change-Id: Id5bd28879f6ef0265344d9a70c25f6c66b067309
Task-number: QTBUG-62087
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
There were some cases where the signal wasn't emitted and we ended up
with events being delivered to objects that didn't exist anymore.
Task-number: QTBUG-65881
Change-Id: I847669a978e82a0332907b029a8295bb993d2850
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
| |
This reverts commit 823428d994b0ec0f6b85288d74554660a51b2406. No more
needed after qt3d commit 78f77f80057b1e77c3f47d52de3e0b3f0c5d8d6e that
took the new API into use.
Change-Id: I4acb707cf363a625ae8e90c4560a0d5140cc4011
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Strictly speaking this is a regression introduced with commit
e22b624d9ab1f36021adb9cdbfa9b37054282bb8, making the QQmlContextData
objects reference counted, especially from the V4 QML context wrapper
objects.
That change (correct as it is) introduced an accidental circular
dependency in the simple scenario of importing a .js file in a .qml
file:
Each time the type in the .qml file is instantiated, we create a
dedicated QQmlContextData for the .js file. If the .js file has no
imports itself, that new context will get the same ctx->importedScripts
JS array as the QML context of the .qml file. That is a strong reference
via QV4::PersistentValue. That array in turn contains the
QV4::QmlContextWrapper that belongs to the imported script, which in
turn holds a strong reference (via refcount) to the script's context.
This patch breaks the circular reference when we perform context
invalidation, as the least intrusive measure.
For the auto-test to work, we must also clear the qmlContext persistent
of the QV4::Script that's used to evaluate the .js file. In subsequent
imports that persistent will be initialized to new values, so it will
only hold a strong reference to the last import, but strictly speaking
that is still a leak - hence also part of this fix.
Change-Id: I3e543c946e5e683425072dc3df7e49ca0e0c0215
Task-number: QTBUG-66189
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
| |
tst_qquickflickable.cpp:822:47: warning: ignoring return value of ‘bool
QTest::qWaitForWindowActive(QWindow*, int)’, declared with attribute
warn_unused_result [-Wunused-result]
Change-Id: I39be58a1032e36f650ce2e008026faaf368cca3f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Mention (in the detailed description) that Array is indeed supported.
- Provide examples for getting and setting individual array elements,
and how to read the length of the array.
- Properly document the property() and setProperty() overloads that
take an index.
- Link to the overloads where it makes sense.
These changes make the intended workflow for using arrays much more
obvious.
Change-Id: I4657a7b1e2b4c2977120ee8e345ee9ae7d2bbc2d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
| |
Change-Id: I4d936d9900789935fe090ca358e0431343b3aaef
|
|
|
|
|
|
|
|
|
|
|
| |
Reverts 2c2e7f27426cb4381f2dcaa36affe55719619753. WebGL does not
support a shared index and vertex buffer. Due to a performance
regression, this patch is reverted.
Task-number: QTBUG-66191
Change-Id: I296d2a6c1c7b5fa66532bd7e106f5360d9d2403a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a regression introduced with commit
3b6eeee177b64eebe240d51be0c7bb5f031471d8 in the 5.9 branch. When
constructing an object with deferred properties and not running
qmlExecuteDeferred, then the deferred data would never get deleted
because the bindings list remains non-empty and we would leak the
deferred data as well as the entire compilation unit behind it.
This happens for example when declaring when instantiating a QML file
with states:
states: [ State { ... }, State { ... }, ... }
Unless every state is entered, its deferred changes property is never
applied (via qmlExecuteDeferred) and thus the defer data is leaked.
Task-number: QTBUG-66189
Change-Id: I1b2119c601d1e0ab4e37f53d4cf2f569586ee883
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Replace manual use in QQmlData and QQmlData::DeferredData with
QQmlRefPointer.
Due to forward declaration trouble this required declaring a non-inline
constructor/destructor for QQmlData and DeferedData and disabling
copying, so that not every C++ compilation unit including qqmldata_p.h
needs to instantiate the QQmlRefPointer destructor and thus know whether
QV4::CompiledData::CompilationUnit has release(), etc. The out-of-line
declarations however should not have any negative impact as the only
call sites are within qqmlengine.cpp, too.
Change-Id: I2e8295cb0d7f876a5d7d18765dbac285184e6c99
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This approach tracks object allocations only,
when slots from already allocated memory segment are used.
Change-Id: I514b974d7580c1236264bec96dc1abe594585e86
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
.. instead of calling QOpenGLContext::currentContext(), which in turn
accesses the thread-local storage.
Change-Id: I773686deb2a745e066b0878a6ccb087afb81774d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Tuukka Turunen <tuukka.turunen@qt.io>
|
|
|
|
|
|
|
|
| |
I doubt it will make the test any less flaky, but may be an improvement.
Task-number: QTBUG-53916
Change-Id: I3901ab26107abfd1420947392232243ad8c40ead
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-62007
Change-Id: I63d5a57163b36bc8629930e1cda8d5afa1e77d15
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
The idea of NaN boxing is to use one single NaN as a "true" NaN, and all
others as a boxed value. So when encoding some NaN, be sure to use that
one "true" NaN. Otherwise, it will be interpreted as an encoded value.
Task-number: QTBUG-65998
Change-Id: Ia6e4641be180f3d626c40a57b473f181358e04db
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
| |
Similar to the one for QQuickWidget, it tests the effect of
AA_SynthesizeMouseForUnhandledTouchEvents and verifies the
source() of the synthesized mouse event.
Change-Id: Ib706b5cc7b9a374850f3197ca6ce2c3aed4d1ba2
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
| |
Make sure events are delivered as expected and that synth-mouse
events have the right source().
Task-number: QTBUG-64241
Change-Id: I95a073ce0faea2111c8e1aca42fa44c1b529a6ec
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
|
|
|
|
|
|
|
|
|
| |
We won't have a process that terminates in this case and we don't want
to wait forever.
Task-number: QTBUG-66159
Change-Id: I5d0bbe2f8bc9c7cbc8732272ccca779d5f9bcc7d
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I444137fd10041781df232447b8e2bf712582f079
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
| |
Use the previous item view boundaries (before a remove was applied)
when defining transition properties.
Task-number: QTBUG-64311
Change-Id: I66870a7267ac26ea430c364383f32fd5c47d4a5d
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes the Item { Loader { sourceComponent: Window { } } } case
consistent with the Item { Window { } } case: the inner Window is
transient for the outer Window.
It works even if the Loader's Window has a visible: true declaration:
in that case, until now, the Loader's Window would become visible
at component creation time, before the outer Item became visible.
So the test to check whether it had a transient parent did not work.
We now change the delayed-visibility mechanism in QQuickWindowQmlImpl
to wait for the parent Item to acquire a window of its own rather
than waiting for the transient-parent-if-any to become visible.
It should still take care of all the old cases too, e.g. in the
Window { Window { } } case, the inner Window's QObject parent is actually
the QQuickRootItem. (Amends 701255c76f671f100338a799f0194bf10e26c9d1)
[ChangeLog][QtQuick][QQuickWindow] When a Window is declared inside
another Item or Window, the window will not be created until
the parent window is created. This allows it to have the correct
transientParent and be managed as a transient window.
Task-number: QTBUG-52944
Change-Id: Iaf4aafbd696f6e8dd0eec1d02db8bd181483bd07
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When for the QQC code path we do QML type re-compilation, we allocate a
new QV4::CompiledData::Unit. We must make sure that this dynamically
allocated memory is released in QV4::CompiledData::CompilationUnit's
destructor, by ensuring that the StaticData flag is not set.
This isn't directly applicable to the ahead-of-time generated cache file
unit data as they will always be re-generated (and thus the unsetting of
StaticData at the end of createCompilationUnit::createUnitData()), but
I've added a test-case nevertheless to ensure the correct engine
behavior.
Change-Id: I16973d7989567892bf8bf9dd6214bf293055d260
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Commit 3b14e2ffdd8eb4b7f7f4508768b75f2acc399370 replaced the
QQmlRefPointer<QQmlPropertyCache> with a raw QQmlPropertyCache pointer
and added a V4_NEEDS_DESTROY tag. However unfortunately the destroy()
method in the heap class does not decrease the reference count.
Change-Id: I90a8c56cd638592b67aae7041fbb57c879c4146c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When importing modules - in the QML loader thread - with plugins we keep
globally track of the Qt plugins that we have loaded that contain QML
modules, to ensure that we don't call the engine-independent
registerTypes() function on the plugin multiple times. After
registerTypes() we may also call initializeEngine() on the plugin for
the engine-specific initialization, which - as a QQmlEngine is provided
as parameter - must happen in the gui thread. For that we issue a
thread-blocking call that waits until the gui thread has woken up and
processed the event/call.
During that time the global plugin lock is held by that QML loader
thread.
If meanwhile the gui thread instantiates a second QQmlEngine and
attempts to issue a synchronous type compilation (using
QQmlComponent::CompilationMode::PreferSynchronous), then gui thread is
blocking and waiting for its own QML loader thread to complete the type
compilation, which may involve processing an import that requires
loading a plugin. Now this second QML loader thread is blocked by trying
to acquire the global plugin registry lock
(qmlEnginePluginsWithRegisteredTypes()->mutex) in qqmlimports.cpp.
Now the first QML loader thread is blocked because the gui thread is not
processing the call events for the first engine. The gui thread is
blocked waiting for the second QML loader thread, which in turn is stuck
trying to acquire the lock held by the first QML loader thread.
The provided test case triggers this scenario, although through a
slightly different way. It's not possible to wait in the gui thread for
the plugin lock to be held in a loader thread via the registerTypes
callback, as that also acquires the QQmlMetaType lock that will
interfere with the test-case. However the same plugin lock issue appears
when the first QML engine is located in a different thread altogether.
In that case the dispatch to the engine thread /works/, but it won't be
the gui thread but instead the secondary helper thread of the test case
that will sit in our initializeEngine() callback.
This bug was spotted in production customer code with backtraces
pointing into the three locations described above: One QML loader thread
blocking on a call to the gui thread, the gui thread blocking on a
second QML loader thread and that one blocking on acquisition of the
plugin lock held by the first.
Fortunately it is not necessary to hold on to the global plugin lock
when doing the engine specific initialization. That allows the second
QML loader thread to complete its work and finally resume the GUI
thread's event loop.
Change-Id: If757b3fc9b473f42b266427e55d7a1572b937515
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a validator does not allow for certain characters to be entered,
then it should not allow these to be entered in even if an input mask
is set. This fixes a regression introduced in
1b21b73e89942d567c90a17a3bf7a7ecae3de258.
The test modified is because this is in fact a general limitation when
combining validators and input masks, when a separator is used.
Whereas the original patch did allow this to be possible, this is now
not possible again.
Task-number: QTBUG-64616
Change-Id: Ic6a3f40a9faa7c04abc055cfc2752044fddd33a0
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
| |
Change-Id: I1e1d8f3996bf2d187491d50a76852fb82257a42b
Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the persistent storage becomes fragmented, we would find the page
with a hole in it, but we wouldn't put it to the front of the page
list. So upon the next allocation we would begin iterating through
firstPage again.
This wasn't quite visible in callgrind as overall not many instructions
were executed, but in perf this function showed up as hotspot because
the search for free pages ends up with a lot of cache misses.
In delegates_item_states.qml this was about ~7% of measured cycles with
perf.
Change-Id: I2bfa337ea9be14d1321756963c72d31336790a0a
Done-with: Erik
Task-number: QTBUG-65708
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allowing types with lowercase names causes ambiguity, as can be seen in
QTBUG-43567 and the comment in IRBuilder::visit(), which explains that
"the grammar can't distinguish between two different definitions" whose
only difference is casing of the first letter.
- Prevent registration (return -1 with e.g. qmlRegisterType()) when a
type name doesn't begin with an uppercase letter.
- Document the uppercase type name rule in more places.
Change-Id: I4e522c65990f418eaafa45a256e3cb07a3e01ba4
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a C++ singleton has an enum with the value -1, we would expose that
value correctly when taking the accelerated property access code path in
the optimizer, but when going through the slower QQmlTypeWrapper we
would return undefined. This turned out to be a silly logic error that
assumed that -1 is not a valid value for an enum and instead indicates
an enum value not present.
[ChangeLog][Qml] Fix -1 as enum value in QML exposed C++ singletons
showing up as undefined.
Task-number: QTBUG-66067
Change-Id: Ib66dad7a4b59822b2c40ad6bd9af4b72469582e9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
| |
Create an error via QQmlCompileError and return it instead
of asserting.
Task-number: QTBUG-43567
Change-Id: I0c0741943d30516379eff5f44ed8618a0f0116a4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-65827
Change-Id: I0c0b960066377acea5de2e45ac21675aab223c64
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before this patch, you'd get the following warning:
QQuickItem::stackAfter: Cannot stack after 0x7f9e668368c0, which must be a
sibling
After this patch, you get this warning:
QQuickItem::stackAfter: Cannot stack QQuickItem_QML_131(0x7ff548f44d70,
name="hoverPathDelegate", parent=0x7ff54a871c90, geometry=0,0 0x0) after
QQuickItem_QML_131(0x7ff548f3c8f0, name = "hoverPathDelegate"), which must
be a sibling
This tells you which type caused the warning, and, if you've set it,
its objectName.
Change-Id: I7b20f1ac089f42d73f02bcca0382022905d0cb57
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
| |
Task-number: QTBUG-65924
Change-Id: I47b3afbb8235900156c814874d5ae2250cf13da8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
| |
Task-number: QTBUG-65834
Change-Id: I77d77b0ab628b8a90ad48f06fab0cf8025d06109
Reviewed-by: Arnaud Vrac <avrac@freebox.fr>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
|
|
| |
The Qt documentation is supposed to be valid for older Qt versions too.
Anyhow, the generated attributions are only valid for the exact version
the documentation was generated from, so make this explicit.
Also mention since when the libraries are under LGPL3/GPL3.
Change-Id: Iec8f67e5e43be456cc77283ca6d2a7ebe142f501
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
|
|
|
|
|
|
|
|
|
| |
While the architecture might be similar for e.g. the DirectX
Renderer, the details are only valid for OpenGL backend.
Make this explicit by renaming the page.
Change-Id: I24bf82de35099ae14eb6bfb9d58b422b476636ac
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Instead hold a direct pointer to the animation timer and make it's
methods non static.
Change-Id: I6382fd2a1c02464ddb573f0210a14c603fd932db
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: J-P Nurmi <jpnurmi@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
|
|
|
|
|
|
|
| |
.. by getting the context from the readily available state.
Change-Id: Ie2819a112b31e080a865c657d0fc63cd1968e7a3
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
| |
Fix some typos and grammar errors.
Change-Id: I9a3fa591ada5ec299ea1277386405944138c9ddc
Reviewed-by: Martin Smith <martin.smith@qt.io>
|
|
|
|
|
|
|
| |
It is talking about item() but such a method doesn't exist anymore.
Change-Id: I1935d8b9e88b27a9db1122545a2a82a42d827671
Reviewed-by: Michael Brasser <michael.brasser@live.com>
|
|
|
|
|
|
|
|
|
| |
It is flaky and needs to be fixed.
Task-number: QTBUG-65823
Change-Id: I471754631493eed20400a2a57b7e55c5007e55f7
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
|\
| |
| |
| | |
refs/staging/5.9
|
| |\
| | |
| | |
| | | |
Change-Id: I2837d46455d8f82f0272b463fdf59a3fcfe53ea3
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
QQuickWidget thinks of itself as a toplevel window, so it cannot process
the offsets in a parent window.
Amends 41293196b4db1aa7a0c616af312875c484639644.
Task-number: QTBUG-65800
Change-Id: I8c5dcb8f44a6cbdb58bcc956d8263e68d8180bec
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The test is unstable.
Also, print the actual numbers if the fuzzyCompare QVERIFYs fail again.
This way we can see better what is going on.
Task-number: QTBUG-65819
Change-Id: I65368300498382f7bfebb25299280aa15e3a56ef
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-63304
Change-Id: Idfefb246a15166e04c0db0c894a705a7be2ecf67
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
|