| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
+ 0e65d4f97eb2c0404459d79d326628d43c0bbc71 Bump version
Change-Id: If58219be3ea1f58d3c8f87d5b7389eeb61afe6f5
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
|
|
|
|
| |
Change-Id: I45bd34a11cd25a5d6e1778ae43ef37a487733896
|
|\
| |
| |
| | |
Change-Id: I5be12e0e63c3264d578a69a4a8c0c3fbf66d0efd
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ 2ededacdde179357eb686901202789bbee35771a Fix crash in QQuickAnimatorProxyJob::sceneGraphInitialized()
+ f12e6003831b8aedac99e89b38665da64d0804ca Bump version
+ 3793a264b6eeecae5d4c44747fbe46c0d255a3c5 Silence a GCC 8 warning in qv4string
+ 89cdd5575bba856035946926f5575705ebd6c1b7 Silence a GCC 8 warning in qqmljsparser
+ cbb11c57773713ca18384a6c45e5dcd96330850a Silence a GCC 8 warning in qv4engine
+ 10bef7aa883cab99cfcb526d6f996f033b3f1fc0 Silence a GCC 8 warning in qquickanimation
+ 6626572f8604b2789da9253ccd7aa92d3f6013e9 Silence GCC 8 warnings in qpodvector
+ 93c3844a84f0acd382be5021d2ebe896269b7277 Silence another GCC 8 warning in qpodvector
+ 24af53cfeb998dcf3a6c6d49d312e50809a4a324 V4 Date: fix what we can within ECMA 262's limitations
Change-Id: Idc45484077f4dddca3111defb8e0b787fef0334a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This amends commit 24af53cfeb998dcf3a6c6d49d312e50809a4a324.
The very last test (15.9.5.43-0-8) in the ES test-suite relies on
constructing a time *just* outside the valid range, to provoke (and
check it gets) a RangeError. However, it uses the current time-zone
offset in computing this; and the local time -> UTC conversion in the
Date constructor uses the zone information for the zone at the given
time. The TZ db uses each zone's local mean solar time for the period
before a formal zone was introduced; and Vancouver is further West
than the nominal meridian for its zone. The test code throws in an
hour's correction in case it's run in daylight-saving time, which
would put the test time, when run during standard time, an hour (and a
millisecond, rather than just the millisecond) outside the valid Date
range, so as to ensure it's still a ms outside when the test is run
during DST. However, the 12m28s mean solar offset overcomes the 1ms
and puts the time back in range durign DST (but still 47m32.001s
outside during standard time, which is why this problem only surfaced
when North America entered summer time). Fortunately, Los Angeles is
further East than the meridian in question, and uses the same zone.
Task-number: QTBUG-67010
Change-Id: I58fd7bf14366ebe5842b8abd7e6802c9c78ca27e
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit fb20d2f7b149725b0fcc8e5bbb377cd6dababc9b)
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use QDateTime and QTimeZone to simplify code (when we can).
Note which defective methods are so because the ECMAScript spec
requires those defects, reference my bug report against those defects.
Fix currentTime to return a UTC time.
Fix getLocalTZA to actually deliver the standard offset, without
daylight-saving corrections.
Fix DaylightSavingTA(t) to return the difference between current
standard time offset and pertinent total offset at time t (explaining
why that's the least broken answer), rather than assuming DST is one
hour when active. (In some places it's half an hour, in some places
two hours; and the bugs in the spec break UTC() and LocalTime() if we
only return actual DST offset, without adjusting for historical
changes to standard offset.)
Fix tests to use actual IANA IDs for zones.
Change QTime-to-Time conversion to use a modernish date, for which
time-zone data is likely to at least be consistently handled, instead
of MakeDay(0, 0, 0); that's (nominal proleptic Gregorian) 2 BC,
December 31st (represented denormally) for which any time-zone data we
have is artificial and contrived. I chose Cassini's third centennary,
as it's not likely to be near any zone transitions and is within the
era of sane time-zone data.
Task-number: QTBUG-72109
Task-number: QTBUG-56787
Change-Id: I5f21ee2010070a5c1798134fdd2915a723208fd9
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit 2b8b7a162be52f8cd6c2bc39f498a1ddfb59dd68)
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
qtdeclarative/src/qml/qml/ftw/qpodvector_p.h:119:22: error: ‘void* memmove(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class QQuickBasePositioner::PositionedItem’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess]
::memmove(m_data + idx, m_data + idx + count,
Change-Id: I049703a0a6bb4432dfd3d3ce3c8cef13e9c2e31a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 55f71cdfc5746a71bcb89f0fa4ff3447cb8b5514)
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qpodvector_p.h:90:34: error: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class QQuickBasePositioner::PositionedItem’; use ‘new’ and ‘delete’ instead [-Werror=class-memaccess]
m_data = (T *)realloc(m_data, m_capacity * sizeof(T));
qpodvector_p.h:94:22: error: ‘void* memmove(void*, const void*, size_t)’ writing to an object of non-trivially copyable type ‘class QQuickBasePositioner::PositionedItem’; use copy-assignment or copy-initialization instead [-Werror=class-memaccess]
::memmove(m_data + idx + 1, m_data + idx, moveCount * sizeof(T));
Change-Id: I37088986a0f8613152a355ed6f3f9572316fa607
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 622decbe3b2478496295e57d59f9cf16a9f70a13)
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
qtdeclarative/src/quick/util/qquickanimation.cpp:1669:109: error: cast between incompatible function types from ‘QVariant (*)(qreal&, qreal&, qreal)’ {aka ‘QVariant (*)(double&, double&, double)’} to ‘QVariantAnimation::Interpolator’ {aka ‘QVariant (*)(const void*, const void*, double)’} [-Werror=cast-function-type]
d->interpolator = reinterpret_cast<QVariantAnimation::Interpolator>(&_q_interpolateClockwiseRotation);
Change-Id: I8da70ef666deb3cbdbf05c5bac89f705a2ec5ea8
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 12afec6c2f89264b7344f9221763898c77a396fc)
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
qtdeclarative/src/qml/jsruntime/qv4engine.cpp:913:78: error: ‘void* memcpy(void*, const void*, size_t)’ writing to an object of type ‘struct QV4::Property’ with no trivial copy-assignment [-Werror=class-memaccess]
memcpy(argumentsAccessors, oldAccessors, oldSize*sizeof(Property));
Change-Id: I6e3d6a1a26fda33aa47c315a183edba9dcd0c0b9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit d0c1b1e8f9dcbde14154029f7df0acc3888f675a)
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
qtdeclarative/src/qml/parser/qqmljsparser.cpp:82:129: error: ‘void* realloc(void*, size_t)’ moving an object of non-trivially copyable type ‘class QStringRef’; use ‘new’ and ‘delete’ instead [-Werror=class-memaccess]
string_stack = reinterpret_cast<QStringRef*> (realloc(string_stack, stack_size * sizeof(QStringRef)));
Change-Id: I670b8a860bf3dc9c20126306f7848f38acd75ca9
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 2474eb092aace8f58bd49a61ec712b5ae4dd1245)
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
qtdeclarative/src/qml/jsruntime/qv4string.cpp:224:76: error: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘class QChar’ from an array of ‘short unsigned int’ [-Werror=class-memaccess]
memcpy(ch, item->text->data(), item->text->size * sizeof(QChar));
Change-Id: Ibbb91fb017fe3cc382e4a4641f899c8ea4ef989a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 27ef77279f0cc563eac58f6ef5ea0f6ac6b570a4)
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ic246342b553bddc3423534e5c0afea61e2d1fe32
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ b6d78236e1a87c6f2696fc3ea7214459f6da278c Bump version
+ cb9537d83046dfbfdbe4977999b606fed879d2d7 Fix out of bounds stack access with the byte code interpreter
+ 75306a2f438e1d2b3969a7a3b7ffd8e39b84cd11 Fix truncating of doubles to integers
+ b6ce37a9b7c5058a33d05d307d74f35ebbf1b9e7 QQuickPathViewPrivate: fix heap-use-after-free
+ 239b8f6ee869dbe1f27ec4fa5d5247eff502c47b stabilize and standardize tst_qquickwidget
+ 67f88f2342427e8ceb50acdd63444eaa527675b9 Doc: Fix broken link targets
+ 0e38ce39cd63318f2a10239239b173f17725eecf Remove const from QQuickPointerEvent::device property
+ 3b3e0c4d80090120fb94fcd42221ddd79a8d0933 Doc: Add precision to scene graph description
+ 5f364acefa3ce8bc770dd4ddb6d962d9f2ecf292 Doc: Extend ItemSelectionModel QML documentation
+ 8763b916cd8c65f3519814b00b9a2202c74801ad Doc: Use [] instead of new Array() in snippet
+ b067e607f1cfd5bee94710d6a6a7c2fa048e9b23 Doc: fix QJSEngine code snippet
Change-Id: Ifa84661534e603437e6eeba2ee84a34373f5c84f
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| | |
Change-Id: I48d275a68931a6814d74d9db9d1da040cf07ab55
|
|/
|
|
|
|
|
|
|
| |
Check for null pointer to controller.
Fixes: QTBUG-64402
Change-Id: Ic84bdc9c5cde0e65da436e1c85b40eaf6e3ed77a
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry picked from commit 10095542d16fc9f5b2c585abf72fe00be9debff3)
|
|
|
|
|
|
|
|
|
|
|
| |
The code snippet showing how to use QJSValue::call was wrong. This patch
corrects that.
Change-Id: Ib4c6479f3ef63f4f95af845d0af228d3c71f0731
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
(cherry picked from commit ec2388860141dcde6387f4cba482955de648e5aa)
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
This change removes warning about using new Array() as constructor
with the snippet in Qt Creator.
Task-number: QTBUG-65891
Change-Id: I858601c21d703e4226db4f4c4d9ef52ec6418ed8
Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit a30138cae86268d71415bc88cfba157977f4a442)
|
|
|
|
|
|
|
|
|
|
| |
This change provides a bare minimum documentation for the
ItemSelectionModel QML type.
Task-number: QTBUG-58090
Change-Id: I0e232f8e05e7629d6f573f8dce21154d0ec307e5
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
(cherry picked from commit 9ee7b52f3234d12c7617ddf716f54e1923d3cded)
|
|
|
|
|
|
|
|
| |
Task-number: QTBUG-60913
Change-Id: I3a9d8925337a12a849e39a70f168dbfc7f007e5f
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit 785451a30921f11a88d45c1f9e1a00f6c7e571d8)
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
A property never has const pointer as its type. Getting this wrong also
causes problems with the QML type registration not matching the actual type.
Task-number: QTBUG-61749
Change-Id: Ic3c47499cc4dff6df0beecf5b1413c76509ca6f5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 1d815780e020a7315dfc4762b6b0280834203e7e)
|
|
|
|
|
|
|
|
|
|
| |
* Rename two section titles that caused confusion for the autolinker.
* Add see also link to correct location from SpriteSequence QML type.
Task-number: QTBUG-58640
Change-Id: I62b941d00198ac56d998ca14b926c7bb37f6c91e
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
(cherry picked from commit afccf3b4654c04c57d4f7e6da09f88e27ffb5a54)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In tst_qquickwidget::enterLeave(), start with the cursor outside the
same as we do in QtQuick tests: move the window first, then position
the cursor to the right of it and downwards (because the window might
not necessarily go where you want it to).
Don't hard-code 5000ms timeout on qWaitForWindowExposed(): it's the
default anyway.
Task-number: QTBUG-64397
Change-Id: I67e4566c2c7f9e361a79e3a091436c3391f39786
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The TabBar auto tests in Qt Quick Controls 2 repeats the following
process very quickly for several data rows:
1. Creates a TabBar (PathView, when using the Universal style)
2. Moves items in its QQmlObjectModel
3. Deletes the TabBar
When run with ASAN, this test would fail, because the TabButtons
(which are child items of the PathView) would try to access a deleted
QQuickItemChangeListener upon their destruction.
The underlying issue is that QQuickPathView::modelUpdated() is called,
and before a refill() can happen, the view is deleted.
QQuickPathView::refill() was the only execution path that was releasing
the cached items (QQuickPathViewPrivate::itemCache), and since part of
releasing an item involves removing the QQuickPathView as a change
listener from the item, the item would access the deleted view
(listener) when the item was being destroyed.
This patch fixes the issue by also releasing cached items in
QQuickPathViewPrivate::clear(), which is always called by the
destructor.
Task-number: QTBUG-68964
Change-Id: Ic5bf0943be79948c86bf7c07ef13ecd1a7b971ba
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
(cherry picked from commit 49c244e3c5a9138e6785515ebb64334705236ed4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When analyzing the data flow and determining that a double is or'ed with
0, we correctly assume a cast to an integer and insert a convert
instruction in the IR instead of the actual bitwise or.. The JIT
implements that, but the interpreter doesn't, resulting in incorrect
values.
This problem is specific to the SSA optimizer and the underlying isel
requirements in 5.9 and does not apply to the design of the code
generator in 5.11 and onwards.
Task-number: QTBUG-68640
Change-Id: I954086b118b022bc6a8e00f17517c2d378825613
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When generating the byte code, we use code like this to initialize
the specialized instructions:
Instruction::Binop op; op.foo = 1; ...
to conveniently initialize the fields and then use the addInstruction
template specialization to copy the non-generic bits (for example binop
specific parameters) across into the Instr union. We copy
InstrMeta<InstrType>::Size bits, which includes the alignment padding
applied via MOTH_INSTR_ALIGN_MASK. However the source data type
(Instruction::Binop in the above example) does not include fields and
therefore the memcpy will read more bytes off the stack than were
allocated.
Discovered via ASAN during the investigation of QTBUG-68640. The issue
is specific to Qt 5.9, it does not apply to the code base of 5.11 or
later, where the byte code is strictly integer organized.
Change-Id: Ia12b75f6c1ec6c9d77ee6e7c4253c1e18c46291c
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\
| |
| |
| | |
Change-Id: Ie78e8def5822a4dc9a15f5920c545a9d81bc2d37
|
| |
| |
| |
| |
| |
| | |
Change-Id: I989ea0802f459b2440ee580e94340a1e64bf00e4
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We want all further imports to be relative to the redirected URL, not
the base one.
Note that this will incorporate any prior URL interceptions into the
final URL if a redirect happens. We don't really want this to happen
because the result of interception is not meant to be the base for
further URL lookup. However, as interception occurs before redirection,
this is unavoidable. Don't use URL interceptors on remote URLs.
Task-number: QTBUG-67882
Change-Id: I6693d14c8af8212dda9954d0bd0293c3c85441ef
(cherry picked from commit cda2680d801acce4e221b23e88d9b3c5504f86e8)
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|/
|
|
| |
Change-Id: I5e632951b46a7f76a1c090b95c90aea3b0142a84
|
|
|
|
|
|
|
|
|
|
|
| |
Add missing QPainter::end(), fixing:
QBackingStore::endPaint() called with active painter on backingstore paint device
Task-number: QTBUG-66452
Change-Id: Ia00e61953528b15015b3e41ba1868e670818cf14
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
(cherry picked from commit 047f161b1a706e81034ccd8d4700a3126c16dfe4)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When using the VDM or QML list properties as models, the delegate model
injects an intermediate QQmlContext that provides access to the
properties of the exposed QObject as context properties. Before commit
e22b624d9ab1f36021adb9cdbfa9b37054282bb8, that context was marked to be
owned by the parent QQmlContext.
When the reference counting was introduced, that parent became
referenced from the cacheItem (DelegateModelItem), but that intermediate
QQmlContext became floating and was leaked.
This can be observed by running the objectListModel test of
tst_qquickvisualdatamodel with detect_leaks=1 in ASAN_OPTIONS.
The leak is fixed by re-introducing the exceptional case of a parent
holding a strong reference to the child, in just this one case.
Change-Id: Iabc26990d39757b0abe0cddf69e76e88e40fba40
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
(cherry picked from commit 01df9e5f46fd05a80f8f6fcaa91204e6184ded6f)
|
|
|
|
|
|
|
|
| |
Change-Id: Ieb14322c104d816842e04e521b556bfc11855f1c
Task-number: QTBUG-67024
Reviewed-by: Robin Burchell <robin.burchell@crimson.no>
Reviewed-by: Michael Brasser <michael.brasser@live.com>
(cherry picked from commit f9686bc68696ad1e99a0587f15d05300d003d990)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
texture
When creating a Canvas item with renderStrategy set to Canvas.FramebufferObject
we might end up creating an FBO with a POT texture (e.g on iOS) that doesn't match
the size of the canvas. The result will be that the image turn out scaled.
QSGTexture::normalizedTextureSubRect() is a function that needs to be
overridden to be used. So this patch will create a subclass of QSGPlainTexture
that overrides it, and returns the normalized subrect inside the
FBO that that matches the size of the canvas.
Task-number: QTBUG-59192
Change-Id: I0f0e57e117656df21a94b7015bd160c44485046d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
|
|\
| |
| |
| | |
Change-Id: Id51ad58cceaa8d00999cf1881c28d179a564fd97
|
| |
| |
| |
| |
| |
| | |
Change-Id: I8a8dd8f55075ce23e0ae85abde2538560d5fa2b5
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When an alias points to a child object which has not yet been
initialized, it's id won't have been registered yet, so setting up a
binding to it will result in a crash.
The fix is: when setting a binding target fails, and its target property
is an alias, queue them until all bindings have been set up, and try
again.
Task-number: QTBUG-57041
Change-Id: I4dc5a6d25c0a32fed9fd952c955e2006c76be45a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit aa94c6c0469b0595f483f13ac88459f0035deef9)
(cherry picked from commit c3db3cfa296dbc5aa198520c1411830d165cd496)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The generated code for jump-on-strict-not-equal-undefined used the
same logic (but with inverted conditions) as the equal case. For
equality, one can jump to else if the value parts are not the same.
So, for not-equal, if the value parts are the same, it would jump
to the else block if they are the same. Meaning, an encoded int
value of 0 (which is strict-not-equal to undefined) would end up
being evaluated as equal.
Task-number: QTBUG-66832
Change-Id: I5c6b8e9b11be53ae21a7164e0a1e0cbfd204f401
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit 86702c3be53fda404ebe331207f9062675c952e0)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We must protect various resources in the type loader with our existing
lock. The QQmlTypeLoaderQmldirContent is now value based, so that we can
release the lock on the shared cache early. Copying it involves
adjusting the refcount of the QHash and QString instances in the
QQmlDirParser.
The safety of this was verified with a TSAN build and the example
supplied in the task. It crashed reliably with TASN errors first and
with this patch it runs without errors.
Task-number: QTBUG-41465
Change-Id: I616843c4b8bdfd65d1277d4faa8cb884d8e77df8
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from commit a3ad52526f79c1528f170c8affe5af00b68ca61d)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The order matters. There won't be a mouseGrabberItem() after
the cancelExclusiveGrabImpl() call. So ungrab the mouse before
calling it, not after.
This cherry-pick includes some other changes to
tst_qquickwindow.cpp (parts of
9d8fe2ac121162c15be6728495be2235b728325a) that enable the
cherry-picked test function touchEvent_cancelClearsMouseGrab()
to be the same as it is in 5.10 branch.
Task-number: QTBUG-63680
Task-number: QTBUG-67445
Change-Id: I1ba6401c5d8eb3417907eb1e6ca20816b501f3ac
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
(cherry-picked from 0821180dc833376a738742e33f728983b9ca6f84)
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In some cases, when our simple array data had an offset and
data would wrap around, ArrayData::append would write out
of bounds data into the new array, leading to crashes.
Task-number: QTBUG-51581
Change-Id: I55172542ef0b94d263cfc9a17d7ca49ec6c3a565
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit f495d4b660107536d0a67ba48e88550278f13893)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are two ways to use function expressions on the right-hand side
of bindings:
property var somethingPressed
somethingPressed: function() { /* ..press something else.. */ }
signal buttonPressed
onButtonPressed: function() { /* ..handle buttonPress.. */ }
In the former case, it declares a property that holds a function. So on
initialization, the right-hand side of the binding returns a closure
that gets assigned to the property 'somethingPressed'.
In the latter case, the signal handler is explicitly marked as a
function for clarity. So, the handler should not be returning the
closure, but the handler should *be* the closure.
In general, it is not possible to detect if the left-hand side is a
property or a signal handler when generating QML cache files ahead of
time. So for this case, we mark the function as only returning a
closure. Then when instantiating the object, we check if it is a signal
handler, and if the handler is marked as only returning a closure. If
so, we set that closure to be the signal handler.
This patch also handles function expressions in SignalTransition and
function expressions as signal handlers.
Task-number: QTBUG-57043
Task-number: QTBUG-50328
Task-number: QTBUG-50328
(cherry picked from commit 22b13921f8067f8a93164875a4ad59bed85b0400)
(cherry picked from commit dc4d6293f9473c0f03c570430d08867d2d01c6e2)
(cherry picked from commit 21301c1dbb00f4a2cd991e520423ed039b297ffb)
Change-Id: I3008ddd847e30b7d0adef07344a326f84d85f1ba
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| | |
Change-Id: I57ba6f7c99b1bcd92a9cb2039a4d7f212a1947ec
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
You can create further objects while the QML engine is being destroyed.
The debug service is not interested in those because they will be rather
short lived anyway.
Task-number: QTBUG-62458
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Change-Id: I255e18590d434e0487efac7c82c223752c645f25
(cherry-picked from commit 958e412a25523cc031564faae81c569aa6c3b01f)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The generated code for jump-on-strict-not-equal-undefined used the
same logic (but with inverted conditions) as the equal case. For
equality, one can jump to else if the value parts are not the same.
So, for not-equal, if the value parts are the same, it would jump
to the else block if they are the same. Meaning, an encoded int
value of 0 (which is strict-not-equal to undefined) would end up
being evaluated as equal.
Task-number: QTBUG-66832
Change-Id: I5c6b8e9b11be53ae21a7164e0a1e0cbfd204f401
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When an alias points to a child object which has not yet been
initialized, it's id won't have been registered yet, so setting up a
binding to it will result in a crash.
The fix is: when setting a binding target fails, and its target property
is an alias, queue them until all bindings have been set up, and try
again.
Task-number: QTBUG-57041
Change-Id: I4dc5a6d25c0a32fed9fd952c955e2006c76be45a
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit aa94c6c0469b0595f483f13ac88459f0035deef9)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We shouldn't allocate objects that are larger than the size of
a standard memory segment through the chunk allocator, as this
can lead to problems when freeing the segment and then re-using
it again.
Instead allocate a private MemorySegment for these objects, and
free it when the object gets garbage collected.
Task-number: QTBUG-66732
Change-Id: Ic24ff65d204977f313ab0adaf7a8132883e525f0
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
(cherry picked from commit c99abf1851bbbfcec11eb77173df620746940ab0)
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assigning to a group property inside a property value source or
interceptor as part of an "on assignment" is perfectly valid. That is
because while "color" is a value type property, the on assignment means
we're actually setting easing.type (in the example and test) on the
property value source, not the color, and that one is a QObject. The
same goes for interceptors.
Change-Id: I505a658977a578894d6dfb00bf5c65b41e42b12f
Task-number: QTBUG-56600
Reviewed-by: Michael Brasser <michael.brasser@live.com>
(cherry picked from commit 2659c308792967322564b5088e0e21bb371e0283)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a regression introduced with commit
4876ea6a18ccdfd72014582aa5d50ab9f6b6ec9e. Where we previously always
returned the same JS object, we would afterwards return a new JS object
for every invocation, which breaks reference comparison. As we store the
JS wrapper for the list element in the QQmlData->jsWrapper we can avoid
repeated allocations. In order for that wrapper to keep working after
modifications (insertion, etc.) to the list model, we have to replace
the static element index with a reference to the node model meta-object,
which also has an element index that however is kept up-to-date by the
list model itself.
Change-Id: I4368de6b6d86687fe96fbf73bd60b80b69d7b058
Task-number: QTBUG-52017
Reviewed-by: Michael Brasser <michael.brasser@live.com>
(cherry picked from commit 44a89492b49f23a975377795dbb7a48916cb5081)
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When accessing/calling a property on an object, it is possible (and
perfectly fine) for that object to be a constant value. I.e. Undefined.
All code handling such a call do handle constants correctly.
Note: this is a 5.9 specific change, because 5.11 got rid of this code.
Task-number: QTBUG-66027
Change-Id: Ied9d0c9c8f8bf958f8634f7be196900b3ea64861
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|