Simon Hausmann [Mon, 5 Aug 2013 13:20:08 +0000 (15:20 +0200)]
Fix line number resolution with the interpreter and try {} catch {}
When re-entering the interpreter for a try block, we use a different code
pointer and therefore need to set context->interpreterInstructionPointer
accordingly. We do that now at the beginning of run(), before we start
interpreting the instructions. When returning from a try block, we continue
using the old "code" pointer and therefore need to set
context->interpreterInstructionPointer back.
Change-Id: I607aef104d5f74bb0c44c6635619c99a6b397bce
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Lars Knoll [Mon, 5 Aug 2013 10:38:43 +0000 (12:38 +0200)]
Optimize lookups in the property cache
Change-Id: I0df182a18ab35ad8744fd23243286c7c501cd4a9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Simon Hausmann [Mon, 5 Aug 2013 10:22:27 +0000 (12:22 +0200)]
Fix stack traces into interpreter code
Make sure to initialize the interpreter instruction pointer pointer
before executing byte code.
Change-Id: I57115699923eeeea627d83536b464f29926d443c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Mon, 5 Aug 2013 09:13:07 +0000 (11:13 +0200)]
Fix race condition in tst_QQuickFolderListModel::basicProperties
The FLM updates its contents asynchronously using a thread, so before
we query for the new properties after changing the folder, make sure the
thread finished updating.
Change-Id: Icbd72801f639f9dffdc0dd85fbbd8b3ee53fedda
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Wed, 31 Jul 2013 14:38:24 +0000 (16:38 +0200)]
Prospective iOS build fix
For some reason no Makefile is created for this .pro file. TEMPLATE = app
should be the default, but OTOH it's missing here.
Change-Id: I499d13368944e552ee85a0c6f194c09e4c19bf8e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Erik Verbruggen [Sat, 27 Jul 2013 13:11:27 +0000 (15:11 +0200)]
MacOS: get instruction stream after closing buffer.
Otherwise the QByteArray's constData might have been relocated, and the
output might be anything but correct (e.g. empty).
Change-Id: I2eb1223d2e0577f41c8f9e6ce81cb65af05166da
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Erik Verbruggen [Wed, 24 Jul 2013 14:45:20 +0000 (16:45 +0200)]
Added convertUInt32ToDouble for X86(_64)
Change-Id: Ie6c918730d0ece0e9e63254ae97c257ee013f2f4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Simon Hausmann [Tue, 30 Jul 2013 12:09:43 +0000 (14:09 +0200)]
Disable the JIT on Windows 64-bit again until the exception support is implemented
Use the interpreter in the meantime, so that we get sensible test results in the CI system
Change-Id: Ib8089836b705433cd15e037d4d2dd662648c941f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Fri, 26 Jul 2013 12:12:58 +0000 (14:12 +0200)]
Improve reliability of GC related tests
Fixes propertyVarCircular2 in clang release builds for example.
Some of the QML/GC related tests had functions like
function deassign()
{
someVariableThatWasholdingSomethingThatShouldBeCollectedNow = null;
gc();
}
which work fine with an exact GC like in v8, but with our conservative
collector they are not that reliable and much more vulnerable to a reference
to the object still being around somewhere. So to improve the reliability
of the test, this patch moves the gc() calls out of the JavaScript function
and back to the C++ caller side (these functions are invoked via QMetaObject::invokeMethod),
where the existing gc() helper function will call the collector and also
process posted deferred deletion events for QObjects.
Change-Id: I8c1f715d56d66bc567ea8bd1575f171460b15ac8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Simon Hausmann [Fri, 26 Jul 2013 11:57:59 +0000 (13:57 +0200)]
Silence qqmlecmascript::propertyVarInheritance failures with clang release builds
There's no equivalent to #pragma GCC optimize ("O0") yet, so we cannot run
these test (sort of) reliably with clang.
Change-Id: Ie41d3ba7911cefacca00165941761b20579107a2
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Simon Hausmann [Fri, 26 Jul 2013 11:14:47 +0000 (13:14 +0200)]
Fix various QList<qreal> property related auto test failures in release builds
When registering the QList<qreal> sequence type, make sure to register it
with "QList<qreal>" as name right there. Otherwise it might happen that
the registration (without name) will find an existing QList<double> type id
and not register anything.
Change-Id: I15c837f26bfa713f50dfdbd7c697d55b094f3f0c
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Petr Nejedly [Wed, 24 Jul 2013 15:13:18 +0000 (08:13 -0700)]
std:: fixes to make qtdeclarative closer to compilable with QNX NDK.
Math functions come in std:: when #included through <cmath>
Change-Id: I62550e5c23cb6f4464f2c2f5c4188a91b3512d1a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Simon Hausmann [Wed, 24 Jul 2013 08:29:04 +0000 (10:29 +0200)]
Initial support for debugging in the v4 interpreter
This adds breakpoint support to the Debugger, a helper function in the engine
for enabling debugging (which will switch from JIT to the interpreter) and a
DebuggingAgent interface, for use by v4 clients.
Change-Id: I78e17a6cbe7196b0dfe4ee157fc028532131caa3
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Simon Hausmann [Fri, 26 Jul 2013 09:52:06 +0000 (11:52 +0200)]
Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into merge
Change-Id: I5824a3eb624b325de10acfd5109c4c1bdabcf780
Frederik Gladhorn [Wed, 24 Jul 2013 08:09:17 +0000 (10:09 +0200)]
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Shawn Rutledge [Mon, 22 Jul 2013 13:28:51 +0000 (15:28 +0200)]
FolderListModel documentation corrections
Task-number: QTBUG-32039
Change-Id: I214c5e58dedb6d752e0c42f6c67fad942bd71894
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Martin Smith [Tue, 16 Jul 2013 10:22:19 +0000 (12:22 +0200)]
doc: Eliminate more cases of multiple topic commands
This fixes the advanced tutotial based on
the samegame example. Several instances where
\page and \example occur in the same comment
are corrected by removing the \page and leaving
the \example. And the links in the tutorial's
list of chapters are correct.
Task-number: QTBUG-31578
Change-Id: I89bb179bc4d4f6120b8d13ba05a51c802a7d4013
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Martin Smith [Tue, 16 Jul 2013 11:03:23 +0000 (13:03 +0200)]
doc: Eliminate still more cases of multiple topic commands
This fixes the dynamic view tutotial based on
the pets model example. Several instances where
\page and \example occur in the same comment
are corrected by removing the \page and leaving
the \example. And the links in the tutorial's
list of chapters are corrected.
Task-number: QTBUG-31578
Change-Id: I5a35b55806e33da5c82c37db1193f96fe74f038a
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Simon Hausmann [Fri, 19 Jul 2013 14:07:07 +0000 (16:07 +0200)]
Fix FDE generation on Intel 32-bit
Make the generated FDE program reflect that ESI and EDI are callee
saved registers. For some reason the program we've had in qv4unwindhelper_p-dw.h
for 32-bit was already correct, but the generator was broken (and even mixed
up the registers).
Change-Id: Id8132580d20636c8ea17f8460d161547227c95fc
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Simon Hausmann [Tue, 23 Jul 2013 10:52:05 +0000 (12:52 +0200)]
Fix tst_QJSValueIterator::iterateString() on Mac OS X
The iterator stores the Property pointers the QV4::ObjectIterator returns,
which breaks when iterating over string objects, that always return the
same Property pointer in subsequence calls: &this->tmpProperty.
Given that internally QJSValueIterator already advanced the iterator to
the next property, value() will return the next value for strings instead
of the current value.
This patch eliminates the permanent storage of Property pointers in QJSValueIterator
and instead get()'s the properties when requested. This is slightly slower,
but safer.
Change-Id: I59028319a0b5dff339a7c9500f117b73f0677451
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Frederik Gladhorn [Tue, 23 Jul 2013 09:10:37 +0000 (11:10 +0200)]
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2279f181b1c30e81651f8907447ec5c826e11475
Shawn Rutledge [Mon, 22 Jul 2013 15:25:01 +0000 (17:25 +0200)]
FolderListModel provides file URLs and the QML FileDialog uses them
This saves a conversion step in the FileDialog and rounds out the
FolderListModel API.
Task-number: QTBUG-32039
Change-Id: I63bc54cb91673aafba08d0d9f132073c129f0c18
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Zeno Albisser [Thu, 4 Jul 2013 13:13:55 +0000 (15:13 +0200)]
Silence clang header-hygiene warning.
Clang complains about namespaces leaking from a header.
However in case of the QtQml namespace this is a
conscious decision. So we disable the warning.
Change-Id: I2a0536363abaa13b66984ddd681297aeab67edbd
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Shawn Rutledge [Mon, 22 Jul 2013 14:49:26 +0000 (16:49 +0200)]
Put back OTHER_FILES in systemdialogs example
Partial revert of
1e9589eb0c2bb9404e11c69e1d76ef9efd89af56.
Creator currently needs this variable in order to find the QML files.
(see https://bugreports.qt-project.org/browse/QTCREATORBUG-9860)
Change-Id: Id5882dfe9733a6b401976e4d6e5baf2066d21b1b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Shawn Rutledge [Mon, 22 Jul 2013 10:06:39 +0000 (12:06 +0200)]
QtQuick.Dialogs: use URLs for interface with QPlatformFileDialogHelper
Depends on
f5dbc876378ae58a7bdfe1e9664fc81caca18dfb and
5069e203d7aff7fb49bf746071f66bfd41c1ae89
Reverts commits
17ded06804576dfde1b19f82f168f7ceb09ec92c and
and
d9751bc29d2f80b86eb237226ce832bf2e372f1d
Change-Id: Ibe2347f3b57e4e569bc4966735e9623dfd274628
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Simon Hausmann [Mon, 22 Jul 2013 08:45:20 +0000 (10:45 +0200)]
Fix crashes in tst_qquickcanvasitem with older Ubuntu toolchains
Older versions appear to be much more sensitive to missing
unwind tables, and as it turns out: We were compiling QtQuick (not QtQml)
with -fno-exceptions.
Since the entire module has access to the private V4 API and may therefore
be subject to exception traversal, make sure to compile the entire module
with CONFIG += exceptions.
Change-Id: If2d029879392c22af7da2f1bba94366d51518226
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Oswald Buddenhagen [Fri, 19 Jul 2013 16:39:07 +0000 (18:39 +0200)]
remove pointless assignments
the magic in qt_example_installs.prf handles this automatically.
Change-Id: I19f0560a6e3d2ddbe8a0128b463aecb7ff45475e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Oswald Buddenhagen [Fri, 19 Jul 2013 16:37:31 +0000 (18:37 +0200)]
unbreak installation after project move
Change-Id: I47e9e7009978b494e6b2b06f793bf1948d443b72
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Simon Hausmann [Mon, 22 Jul 2013 11:43:43 +0000 (13:43 +0200)]
Merge branch 'dev' of ssh://codereview.qt-project.org/qt/qtdeclarative into wip/v4
Conflicts:
src/quick/items/context2d/qquickcontext2d.cpp
tests/auto/quick/qquickvisualdatamodel/qquickvisualdatamodel.pro
Change-Id: I36a4fd28b3156839aecd70039a3ba566bf19a0bc
Robin Burchell [Thu, 18 Jul 2013 11:09:27 +0000 (13:09 +0200)]
Remove unnecessary CONFIG += ordered.
None of the subdirectories here apepar to depend on each other.
Change-Id: Id8ac9f030ecc0b440ee5193bad9bb710cec11edd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Friedemann Kleint [Thu, 18 Jul 2013 08:29:17 +0000 (10:29 +0200)]
Use GET method for redirect in QDeclarativeXMLHttpRequest.
Initial-patch-by: Marek Więckowski <wiecko@fuw.edu.pl>
Task-number: QTBUG-32332
Change-Id: I5514d97ef8574f8e7eef8fcca39bed4cd7e917ad
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Simo Fält [Mon, 22 Jul 2013 05:26:40 +0000 (08:26 +0300)]
Mark tst_dialogs insignificant in win also
Task-number: QTBUG-30513
Change-Id: Ib7b2f7f710be223aeb572061757cd8acd6d6852e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Sergio Ahumada [Fri, 5 Jul 2013 18:46:19 +0000 (11:46 -0700)]
test: Add 5.0.0/5.1.0 bic data for linux-gcc-ia32
QtQuick and QtQuickTest data was missing from before,
so taking the opportunity to add it now.
Change-Id: I120ecd440c0c25e338aa2badafec6e1eddae5425
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Rafael Roquetto [Wed, 17 Jul 2013 20:44:31 +0000 (17:44 -0300)]
Fix tst_qquickview for full screen platforms
Some test cases rely on the fact that show() is not fullscreen, which may not
be true for some platforms. Explicitly make use of showNormal() to avoid
full-screen show on these platforms.
Change-Id: I0787fb62b8e37a73974f87857de200485d7ba6da
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Marco Bubke [Thu, 18 Jul 2013 09:40:54 +0000 (11:40 +0200)]
Revert partially "Remove some unused code and forward declarations"
The setParent function was used by the qml designer!
This reverts commit
8cb3b016885a861fcd2af24e559e768eabecc3ae.
Change-Id: Id6236f5f27d0bf997c5670f3431cfd43721f380b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Shawn Rutledge [Thu, 18 Jul 2013 06:09:54 +0000 (08:09 +0200)]
Disable dialogs to allow changes in qtbase (use urls internally)
Followup to I9ae09416acdbe437acbe9672d0ecfc42059695ae so qtbase change
I61e99d498252241f38ec05724702a90ba050c4bb can get through CI.
Change-Id: I8bf3bca9b2a3b00b2471045cdc73f20329f99d9d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Simon Hausmann [Tue, 16 Jul 2013 14:31:45 +0000 (16:31 +0200)]
Fix failing QQuickCanvas auto-tests
Make sure to initialize the vtbl correctly.
Change-Id: I65eab6e3fbb329b3595773db31fae4726d7683d4
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Simon Hausmann [Tue, 16 Jul 2013 11:19:00 +0000 (13:19 +0200)]
Fix JavaScript stack back trace generation in release builds on Windows
We need to be able to reliably generate stack back traces for JavaScript
calls, and since we use the C stack we therefore need to be able to reliably
walk the stack.
On most platforms the stack back trace generation is tied to the same
mechanism that's used to unwind the stack during exception handling,
which uses compiler generated per-function tables that allow the run-time
to unwind the stack even when no regular stack frame was created.
Unfortunately on i386 on Windows there are no unwinding tables in use (as
opposed to all other architectures Windows runs on), and therefore we have no
reliable way of generating a stack back trace if functions can omit the
generation of a stack frame. Therefore we have to disable this compiler
optimization, using -Oy- for MSVC (see http://msdn.microsoft.com/en-us/library/2kxx5t2c(v=vs.71).aspx )
and -fno-omit-frame-pointer for gcc.
Technically this change needs to be done only in places where we support
throwing or catching V4 exception as well as code that is traversed during the
unwinding. Due to the use of internal V4 api throughout the entire module,
this patch is applied to .qmake.conf.
This also fixes tst_qqmlvaluetypes
Change-Id: I21a9e5522741446de25a5d0046f7e34f741f7722
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Shawn Rutledge [Wed, 17 Jul 2013 11:24:16 +0000 (13:24 +0200)]
systemdialogs example: ensure that all QML files work with qmlscene
Sync up relative paths in the qrc and the actual directories so that
you can run qmlscene with any of the QML files in this directory
and it will still find the shared resources.
Change-Id: I0f216df6b370c19948312fa00a33ce77ccabcd78
Reviewed-by: Liang Qi <liang.qi@digia.com>
Simon Hausmann [Wed, 10 Jul 2013 15:01:47 +0000 (17:01 +0200)]
Implement gcc compatible exception throwing using _Unwind_RaiseException
On ARM/Android we have the problem of not being able to inject the ARM
exception unwind tables into the exception handling run-time - we need to be
able to override the __gnu_Unwind_Find_exidx symbol, which is weakly declared
in libgcc and strong in libc or the dynamic linker.
The solution is to avoid throwing the exception from within libstdc++ but
instead do it ourselves and include the unwinding code along with it, so that
we can replace the symbol. This works by throwing the exception the way the
standard describes __cxa_throw() works, eventually calling
_Unwind_RaiseException. That function in turn will (indirectly) reference
__gnu_Unwind_Find_exidx. If our code references _Unwind_RaiseException and we
link libgcc statically, then the linker will include all the dependencies of
_Unwind_RaiseException in our library, including the resolution of the weak
__gnu_Find_exidx symbol to our implementation in qv4unwindhelper_p-arm.h.
The "catch" with this approach is that it relies on the layout of the exception
object in libstdc++, which deviates from the standard by an added reference
count. The code in question has NOT changed in years, so for now that's a risk
we accept.
A different solution that only depends on the cross-vendor C++ ABI (implemented
by pretty much any compiler other than MSVC that we support) would be to not
throw a pure C++ exception but a foreign exception (still ABI compliant
__cxa_exception, but with a different class). The GNU personality routine would
still catch it if we used catch (...), and we could get hold of the
__cxa_exception pointer via the standardized __cxa_get_globals(). But that in
turn would require replacing the use of "catch (QV4::Exception &e) { ..." in
our client code with macros that abstract away the difference between the win32
C++ based exceptions and the CXX ABI way, thus making the catch code a little
uglier.
Change-Id: I3f9bfaa9f657e80ebe4f88369cf51922367570b1
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Frederik Gladhorn [Mon, 15 Jul 2013 08:51:00 +0000 (10:51 +0200)]
Disable dialogs to allow changes in qtbase (use urls internally)
Change-Id: I9ae09416acdbe437acbe9672d0ecfc42059695ae
Reviewed-by: David Faure <david.faure@kdab.com>
Simon Hausmann [Tue, 16 Jul 2013 13:35:10 +0000 (15:35 +0200)]
Forward port auto test for fix in QtQuick1
This is the auto-test part of https://codereview.qt-project.org/#change,61117
The test passes as-is but we should forward the fix to ensure that we
don't regress.
Change-Id: Ief8fcfc29d671f33cd1b2c3bab7acfd4fcd1df2b
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Friedemann Kleint [Mon, 15 Jul 2013 12:59:07 +0000 (14:59 +0200)]
Fix organization domains.
Task-number: QTBUG-32390
Change-Id: Ibc7e0e85adfffdb7abbd61e8948064e36a8fce9b
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Friedemann Kleint [Mon, 15 Jul 2013 12:58:14 +0000 (14:58 +0200)]
Replace qt.nokia.com by qt-project.org in tests.
Task-number: QTBUG-32390
Change-Id: If318cf9bbcaa36e6e60d693dd0cb9a58768af47b
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Liang Qi [Fri, 12 Jul 2013 08:53:53 +0000 (10:53 +0200)]
Remove DIALOGS_MAJOR_MINOR define in QtQuick.Dialogs code
It's unconvenient with it to extent Dialogs to multiple versions.
Change-Id: I8c7059921875764dc74f80321caebfad16965a6a
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Simon Hausmann [Thu, 11 Jul 2013 10:45:31 +0000 (12:45 +0200)]
Fix exception handling with MinGW on ia32
MinGW on ia32 uses dwarf2 tables and provides __register_frame, so let's use that.
Change-Id: If68598686ff03c8d3d6b1e0db13b477b469adb71
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Friedemann Kleint [Fri, 12 Jul 2013 08:11:56 +0000 (10:11 +0200)]
Replace nokia.com by www.qt-project.org in tests.
Task-number: QTBUG-32390
Change-Id: I595b1bf683d1e63e44354c042f23dd9e10847862
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Simon Hausmann [Wed, 10 Jul 2013 13:44:11 +0000 (15:44 +0200)]
Move QV4::Exception into a separate compilation unit with header file
This is in preparation for some platform specific code regarding throwing
exceptions, as well as a general cleanup :)
Change-Id: I23fb4f12fd09423a1f2cb225145780925002677b
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Friedemann Kleint [Thu, 11 Jul 2013 07:59:03 +0000 (09:59 +0200)]
Fix CLANG-warning '&&' within '||' [-Wlogical-op-parentheses].
Change-Id: Id724c86f87a78048df9b93f2d190593d36261943
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Friedemann Kleint [Thu, 11 Jul 2013 07:57:58 +0000 (09:57 +0200)]
Fix CLANG-warning about unused member variable m_defaultAntialiasingMode.
Change-Id: I68a04532bacd326b4bb3eb8f9a7ee04c67fcd68e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Frederik Gladhorn [Thu, 11 Jul 2013 21:14:52 +0000 (23:14 +0200)]
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Idaaeba880a175166437e2a7266716c776c4483c6
Shawn Rutledge [Thu, 11 Jul 2013 08:58:16 +0000 (10:58 +0200)]
Window example: delay showing the splash until Component.onCompleted
Otherwise it will have the wrong size on KDE.
Task-number: QTBUG-32223
Change-Id: I3ed92ff8aead5c6e5a37a5189c7103a5383087ae
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Stephen Kelly [Tue, 2 Jul 2013 22:13:38 +0000 (00:13 +0200)]
Add a unit test for testing Qt in its install location.
Change-Id: Ide70affa28f0ec37535b5a4ce1bcafac8ac58351
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Simon Hausmann [Thu, 27 Jun 2013 06:49:28 +0000 (08:49 +0200)]
Fix registration of unwind tables on Android
On bionic we need to call a different symbol right from bionic instead of using
dlsym() to find the original arm exception table registration function.
Change-Id: I6bf20454e5395f7b09a46d4be3502e401abcd1b2
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Peter Varga [Wed, 10 Jul 2013 11:00:40 +0000 (13:00 +0200)]
Cleanup: Remove ExternalResource from QV4::Object
Change-Id: Ic512460009ad0f29670d7fae3bd4fe116b0b1c0f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Simon Hausmann [Tue, 9 Jul 2013 11:42:09 +0000 (13:42 +0200)]
Fix rare crashes in release builds on Windows with exceptions
When throwing exceptions we have a tendency to save a backtrace, using
StackWalk64 on Windows. Before we can do that stack walk, we have to
capture the current processor register state, in particular the frame pointer,
for which we call RtlCaptureContext. Almost naturally that function requires
the caller to have set up a stack frame, which may not have happened when
compiling with release flags.
As a remedy, this patch moves the code that calls RtlCaptureContext into
a separate file, which will be compiled with frame pointer optimizations
disabled.
Change-Id: I3ce53b47c4a421efeaa3e575429d85327540ca97
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
J-P Nurmi [Tue, 9 Jul 2013 12:01:27 +0000 (14:01 +0200)]
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Jan Arve Saether [Thu, 4 Jul 2013 10:14:44 +0000 (12:14 +0200)]
Don't assume that the last step of the XPath is an element name
In order to find the number of items in the model, the model did a
second query on the document representing the result set.
So, suppose the user queried for //a/b/c, the result set would contain
all the 'c' elements from the input document.
In order to find the number of items in the result set, it did a second
query with the expression "count(/dummy:items/c)", where 'c' was
extracted from the last step in the original XPath expression
For simple expressions, this worked fine.
However, if the last step had a predicate such as "//c/parent::b" it
didn't work.
The solution is to not filter *again* the last step when we query for
the count, since we know that all result items are direct children of
"dummy:items", and instead just execute the query
"count(dummy::items/*)".
This should also potentially improve performance.
Task-number: QTBUG-17588
Change-Id: Ib2fdf1ec8b91022df0597e089ad34d34b04428b0
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Simo Fält [Mon, 8 Jul 2013 07:44:34 +0000 (10:44 +0300)]
QtDeclarative: Removing parallel_test from config
tst_qquickvisualdatamodel and tst_qquickpositioners have been failing
recently on CI. One can't reproduce the failures locally unless
running the tests parallel, like CI does.
Task-number: QTQAINFRA-705
Change-Id: I09a9123d045f2213af915518917ce622b33b27ba
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Tomasz Olszak [Sat, 29 Jun 2013 14:31:37 +0000 (14:31 +0000)]
Added ApplicationStateChangeEvent handling to QQuickApplication.
Change-Id: I8b8965bc36b483be7287abf4485221f428a0b92a
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
J-P Nurmi [Mon, 8 Jul 2013 13:55:37 +0000 (15:55 +0200)]
Docs: restore missing ListModel methods
Change-Id: Icb491d14d42af769928b1663be0877e23ff43850
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Thorbjørn Lindeijer [Sat, 11 May 2013 19:54:00 +0000 (21:54 +0200)]
Fixed typo 'backens'
Change-Id: I65e4492d1bc70e5344c0edc37a7c2f87fe355e62
Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
Albert Astals Cid [Fri, 5 Jul 2013 08:49:55 +0000 (10:49 +0200)]
Update snap when snapMode changes
Task-number: QTBUG-32258
Change-Id: Id2120acad06d7cfce988400df0067e2c0f16eb24
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Mitch Curtis [Mon, 8 Jul 2013 10:29:18 +0000 (12:29 +0200)]
Fix typo in Graphical Effects documentation.
Change-Id: Iad5ee6a965a6373941468bf98ac328e51c5c4066
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Simon Hausmann [Fri, 5 Jul 2013 08:37:15 +0000 (10:37 +0200)]
Fix JIT selection on Android with ARM builds
Debug builds on Android are done as ARM builds instead of thumb because of
problems with debugging thumb builds with older toolchains. However for the JIT
we're not interested in such a choice and prefer to have a consistent choice of
JIT - thumb2 generated code in release _and_ debug builds.
Change-Id: I36b1ec76311b409e36e3fb38c46c6c193adb1be8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Fri, 5 Jul 2013 08:44:55 +0000 (10:44 +0200)]
Follow-up to previous commit about forcing thumb builds:
Disable the checks of the thumb bit in code pointers when building for Android,
because we want to allow for intermixing of thumb (what the JIT generates) and
arm code (what the compiler generates for run-time functions we call, in debug
builds)
Change-Id: I0bcce4015d18db4e38244a1d1ad89413b3f17152
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Lars Knoll [Fri, 5 Jul 2013 11:29:57 +0000 (13:29 +0200)]
Get rid of the first half of QQmlGuard usage
QQmlGuard was being used as a more performant replacement
for QPointer. QPointer got now fixed in Qt 5.0, making this
class obsolete.
Change-Id: I77eef066c4823af4b074ef32d4d78dbd67c36cd0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Erik Verbruggen [Mon, 17 Jun 2013 10:37:01 +0000 (12:37 +0200)]
Introduce PhysicalRegister and StackSlot Temps.
Change-Id: I8d0b6a1e85fd0c42772f294fd13bc6041d41c81e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Erik Verbruggen [Wed, 12 Jun 2013 11:30:28 +0000 (13:30 +0200)]
Rename V4IR::InstructionSelection to V4IR::IRDecoder.
Now it can be used by classes that want to walk the IR but do not
generate instructions, without causing confusion.
Change-Id: Idb220a1aee3ba2bbcd43bdeecd28946d567c9f3c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Simon Hausmann [Thu, 4 Jul 2013 13:44:40 +0000 (15:44 +0200)]
Fix crashes in tst_qquickvisualdatamodel
Don't try to set the name string pointer of FunctionObject
to itself for these two FunctionObject subclasses.
Change-Id: I4e5a1963ffefd4ce96308022c251a4bdba54dc1e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Thu, 4 Jul 2013 11:45:16 +0000 (13:45 +0200)]
Fix failing GC related tests with gcc in release builds
Our conservative collector might is more likely to find old pointers
to QV4::Objects on the C stack in release builds, when gcc optimizes out
stores that seem unnecessary. These two tests are prone to that due to
temporary QV4::Values potentially ending up on the stack on x86,
because vmeProperty returns then through an invisible first argument that
is a pointer a a location on the stack.
This patch makes those temporaries explicit, clears them out after
usages and adds GCC pragmas to disable optimizations for these two
test functions.
Change-Id: Ie43841e869346792296911fee6fed80c745faeff
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Simon Hausmann [Wed, 3 Jul 2013 14:44:55 +0000 (16:44 +0200)]
Fix regression in tst_qqmlecmascript::signalAssignment
Detect errors in the signal declaration already at compile time, re-introducing
the earlier code in qqmlcompiler.cpp that checked that. This also means that
the parameter string construction can be done once for each signal and not for
each handler.
Change-Id: Icf6242a793939466bbc44d43bf041281164ad1b6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
J-P Nurmi [Thu, 4 Jul 2013 15:36:14 +0000 (17:36 +0200)]
Fix Qt.application.xxx notifier signals
QCoreApplication now provides change notifications.
Change-Id: Icd7e1247426f4b5ad124d6d9b72a2ba99225ee08
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Erik Verbruggen [Tue, 11 Jun 2013 09:43:55 +0000 (11:43 +0200)]
Add lifetime interval calculation.
This is used in the interpreter to do stack-slot allocation.
Change-Id: I9f4df8fdca35889f4b1154dbbe7d68b579886e18
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Frederik Gladhorn [Thu, 4 Jul 2013 13:32:50 +0000 (15:32 +0200)]
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I15cb7460171b38d11d66367aeb0831ec6e3ca933
J-P Nurmi [Thu, 4 Jul 2013 10:21:04 +0000 (12:21 +0200)]
qmlscene: ensure that the window & component get destructed
Task-number: QTBUG-32207
Change-Id: Ic7c45228cbdc049d3dfdb3482296d0e8c89a930c
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Friedemann Kleint [Thu, 4 Jul 2013 09:45:54 +0000 (11:45 +0200)]
Remove objectlistmodel.qmlproject file.
The example has C++ source code and cannot be run
as qmlproject.
Change-Id: I2d71d3ffc600ca71898ad402499f7a070455c266
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
J-P Nurmi [Sat, 22 Jun 2013 13:49:26 +0000 (15:49 +0200)]
Item views: do not track the geometry of items being removed
Task-number: QTBUG-31873
Change-Id: I4230893ccb2925ed9c2429d26b411264bf7c1c65
Reviewed-by: Andrew den Exter <andrew.den.exter@qinetic.com.au>
Erik Verbruggen [Wed, 3 Jul 2013 13:36:47 +0000 (15:36 +0200)]
JIT: support WIN64
Change-Id: Id657831231ddec66f7d41f32aaac22a71c4c1673
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Pierre Rossi [Mon, 1 Jul 2013 16:33:19 +0000 (18:33 +0200)]
QQuickTextEdit: move QSG* members from dptr to root node.
Subclass QSGTransform node for our use case and add the frame decorations
and cursor nodes in there.
Task-number: QTBUG-31580
Change-Id: Id2b468b53092f21134ae45e5694bc54c43660f8b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Simon Hausmann [Wed, 3 Jul 2013 11:47:26 +0000 (13:47 +0200)]
Cleanup: Remove unnecessary use of ReturnValueRegister
Change-Id: Ic159fa8dcbce3d51db0b39d1cb22d01f9a94e15a
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Kai Koehne [Tue, 2 Jul 2013 09:28:01 +0000 (11:28 +0200)]
Doc: Fix documentation of ownership of in QmlComponent::create
Fixes documentation introduced in
b1ee75d377fc9517d6 : Actually the
ownership is _always_ transferred to the caller.
Change-Id: I3b50588b69fa45730ac09c46912f8319e7581a5f
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Kai Koehne [Tue, 2 Jul 2013 09:18:18 +0000 (11:18 +0200)]
Fix access to invalid memory in ~QQmlEnginePrivate
~QQmlEnginePrivate tries to set incubationController->d to 0. However,
we're already setting the backpointer (q) of incubationController to 0
in ~QQmlEngine, so that the IncubationController destructor might run
in between without being able to reset incubationController.
To fix this, just handle the unsetting of incubationController once, in
~QQmlEnginePrivate.
Task-number: QTBUG-32161
Change-Id: I43a72dcfc0f95938ebfa67d3998adff1fb2d05a1
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Simon Hausmann [Mon, 1 Jul 2013 06:48:41 +0000 (08:48 +0200)]
Get rid of the signal expression rewriter
This replaces the entire rewriter with more or less:
expressionToEval = "(function(<named params here>) { " + expr + " } )"
This also fixes crashes at run-time when the signal rewriter was
executed from the loader thread and tried to use a v4 identifier
hash with the same engine that's also in the main thread.
Change-Id: Ib1e4927d330706a593411fbff64ed3da1e23d0e0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Gunnar Sletta [Wed, 3 Jul 2013 08:09:39 +0000 (10:09 +0200)]
Initialize m_dirty_texture member
Change-Id: I4fa2774aef9bc3258572d28425d1427151297358
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Thiago Macieira [Fri, 28 Jun 2013 22:43:22 +0000 (15:43 -0700)]
Fix warning about change of sign: glyph_t is unsigned
qsgdistancefieldglyphnode_p.cpp(222): warning #68: integer conversion resulted in a change of sign
Use the value 0, which is reserved to mean "no texture"
Change-Id: I0bb135639c432ab08f6561c1d45f64e2d8f96dd7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Petr Nejedly [Thu, 27 Jun 2013 19:51:22 +0000 (12:51 -0700)]
QNX-specific implementation of the stack base retrieval.
The garbage collector needs the top of the stack.
On QNX, every thread has the TLS structure at the top
of the stack, then the stack extends below this TLS structure
This is the easiest and fastest way resolve the stack base
of the current thread.
Change-Id: I9cc9592928298d06aeaee0f6110d61bf3cf68e49
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Erik Verbruggen [Wed, 26 Jun 2013 10:31:06 +0000 (12:31 +0200)]
Fix warning from clang.
items/qquicktext.cpp:2160:49: warning: '&&' within '||' [-Wlogical-op-parentheses]
|| vAlign() != QQuickText::AlignTop && heightChanged) {
~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
items/qquicktext.cpp:2160:49: note: place parentheses around the '&&' expression to silence this warning
|| vAlign() != QQuickText::AlignTop && heightChanged) {
^
( )
Change-Id: Id4bc18642228e7fad6d674bbcdf623446bb6a00f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Erik Verbruggen [Tue, 2 Jul 2013 14:43:59 +0000 (16:43 +0200)]
Fix automatic semicolon insertion. Again.
After a do-token, no automatic semicolon can be inserted, because that
would result in an empty statement. The issue was that the correct state
was set when a do-token was found, but the state updating logic would
immediately reset it back, resulting in a semicolon insertion.
Change-Id: If867510dfaa182d0fe8b73a5bb1cab299c4faecc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
J-P Nurmi [Tue, 2 Jul 2013 15:25:49 +0000 (17:25 +0200)]
Fix missing QQuickTextDocument docs
It didn't appear in the docs at all. Moving the documentation to .cpp
fixes the problem.
Change-Id: Id9741bc6dab20ba976952143160d3551787fae40
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Simon Hausmann [Mon, 1 Jul 2013 06:20:15 +0000 (08:20 +0200)]
Replace us of v4 identifiers for object id mapping in qml compiler
The compiler is executed in a separate thread, at which point it doesn't work
very well to access the identifiers data structures of the engine on the main
thread, allocate new strings and potentially also trigger GC.
This patch moves the data into an intermediate QVector and constructs the
identifier hash on the receiving end in QQmlContextData::setIdPropertyData.
Change-Id: I676cf633cf1c55ee2e8f818e6963368ad55913cd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Kai Koehne [Mon, 1 Jul 2013 12:10:22 +0000 (14:10 +0200)]
Debugger: Remove handling of QT_DECLARATIVE_DEBUG macro
This was added originally to keep older Qt Creator versions working.
However, any newer versions automatically set QT_QML_DEBUG too, and
checking for both actively prevented selectively enabling QtQuick1 or
QtQuick2 debuggers only.
Change-Id: I4d4a984958ef3430ebe05b267bd87185005bbe51
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
Kai Koehne [Mon, 1 Jul 2013 12:07:23 +0000 (14:07 +0200)]
Disambiguate name of static helper from QtQuick1
Change name of static 'qmlEnableDebuggingHelper' variable to disambiguate
it from QtQuick1 variable with the same name.
Task-number: QTBUG-31064
Change-Id: Ia4b0f18a33a383dd4ade1bdb45506304f9066502
Reviewed-by: Aurindam Jana <aurindam.jana@digia.com>
Gunnar Sletta [Thu, 27 Jun 2013 06:21:48 +0000 (08:21 +0200)]
Document public members of QSGSimpleMaterialShader
Change-Id: I2e46989d4076ff639d7264985e030df0f1cb2a88
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Tony Sarajarvi [Fri, 28 Jun 2013 08:22:51 +0000 (11:22 +0300)]
Mark tests tst_qquickloader as insignificant due to random failures
Task-number: QTBUG-30721
Change-Id: I540848b1e7c9992e89b6df2417c37ce5e81423c8
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
J-P Nurmi [Thu, 30 May 2013 15:06:58 +0000 (17:06 +0200)]
Add bool QQuickKeyEvent::matches(QKeySequence::StandardKey)
Change-Id: Iaa8392c1b113856fa80cd2507f8640050eb9bec2
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
Marco Bubke [Wed, 26 Jun 2013 13:28:13 +0000 (15:28 +0200)]
Relayout the text after the vertical alignment is changed
In the designer it is no working without a layout update.
Task-number: QTBUG-32041
Change-Id: I2276914c81b38ad8931109b3d800b65a0d11bca7
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Simon Hausmann [Mon, 1 Jul 2013 03:49:26 +0000 (05:49 +0200)]
Fix qqmlecmascript::sequenceConversionThreads with aggressive GC
During the deserialization of a sequence, make sure that when the collector
runs during the filling of the array, that partially filled array is marked
properly.
Fixed setting of arrayDataLen in other similar places as well.
Change-Id: I19926f733c7c7d1398b11b48c1c37f43e7099ead
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Aaron Kennedy [Sun, 30 Jun 2013 23:58:14 +0000 (09:58 +1000)]
Only emit moving change signals when moving actually changes
Change-Id: Ib775ce8439183388634c6b08785cd8aff4e8e174
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
Gunnar Sletta [Mon, 24 Jun 2013 09:17:09 +0000 (11:17 +0200)]
Example for running animations on the render thread
Change-Id: I7a829f201c9d1514b2462e7f3bd11761d02cb66c
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>