platform/upstream/qtdeclarative.git
10 years agoV4 SSA: speed up dominator calculations.
Erik Verbruggen [Tue, 15 Oct 2013 14:13:01 +0000 (16:13 +0200)]
V4 SSA: speed up dominator calculations.

Changed three recursive routines to worklist-based iterative ones. This
not only speeds up the dominator frontier calculation, but also prevents
the algorithm to run out of stack space.

This is a partial fix for QTBUG-34047.

Change-Id: Ife8dc35724d50408ad356e1621884bdb82db9626
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix compiler warnings with mingw64.
Erik Verbruggen [Mon, 18 Nov 2013 16:57:32 +0000 (17:57 +0100)]
Fix compiler warnings with mingw64.

Task-number: QTBUG-34152

Change-Id: Ibb93d1cac8c343a7ca34ce7d010f24fc56ba89df
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoMake sure we clean up GL resources before we delete the GL context.
Gunnar Sletta [Mon, 18 Nov 2013 14:27:20 +0000 (15:27 +0100)]
Make sure we clean up GL resources before we delete the GL context.

Task-number: QTBUG-34806
Change-Id: I5013baaff0ca86357292474976944c1a3056f219
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoFix small bug in array sorting
Lars Knoll [Mon, 18 Nov 2013 14:58:30 +0000 (15:58 +0100)]
Fix small bug in array sorting

Task-number: QTBUG-34321

Change-Id: I33089499f730bce16a9dfdda04cc8402602bc5fa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMake comparison of singletons and qobjects work
Albert Astals Cid [Wed, 13 Nov 2013 12:31:46 +0000 (13:31 +0100)]
Make comparison of singletons and qobjects work

Otherwise you can end up with some weird situation in which you have
two objects, you print them and then you print the comparison and get
a Foo(0x858480) b Foo(0x858480) a == b false

Task-number: QTBUG-34651

Change-Id: Id2444d919f039be085eb5ed9112345db691540a5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoDoc: Fixed list of animation types.
Jerome Pasion [Mon, 18 Nov 2013 12:21:29 +0000 (13:21 +0100)]
Doc: Fixed list of animation types.

-manually created list duplicates the generated list.
-\generatelist{related} doesn't do anything for a regular \page.

Task-number: QTBUG-33360
Change-Id: I0bf870c71d3985e232fa8c0d5ef7ad572f596e99
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoMake use of GL_APPLE_texture_format_BGRA8888.
Gunnar Sletta [Thu, 14 Nov 2013 10:43:02 +0000 (11:43 +0100)]
Make use of GL_APPLE_texture_format_BGRA8888.

Texture uploads on iOS is extremly slow without it.

Change-Id: Icccd542b8122c7bfa0e839c25e988d107bc17d2a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
10 years agoFix interaction between head room and appending in arrays
Lars Knoll [Mon, 18 Nov 2013 12:54:33 +0000 (13:54 +0100)]
Fix interaction between head room and appending in arrays

We reserve space on both ends of the JS array for appending
and prepending. Make sure they interact well with each other
and don't cause any memory corruption.

Task-number: QTBUG-34853
Change-Id: I184280178690e3cb12ab9b199a8436b32383af38
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDon't assert in QQuickItem::update
Lars Knoll [Mon, 18 Nov 2013 13:23:36 +0000 (14:23 +0100)]
Don't assert in QQuickItem::update

The method can actually be called from QML, so we can not
have an assert in that method. Instead simply return if the
item has no contents

Task-number: QTBUG-34060
Change-Id: Ib28ffa5c6c63fbec956abe25020010ed73a9cfa9
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
10 years agoLimit the amount of memory we allocate on the stack
Lars Knoll [Mon, 11 Nov 2013 10:22:24 +0000 (11:22 +0100)]
Limit the amount of memory we allocate on the stack

Setup limits for both the C and the JS stack, and check
them before entering functions. If we run out of space,
throw a RangeError exception.

Be careful and recheck the stack bounds when things go
outside. This catches the case where the engine got
moved to another thread changing the stack boundaries.

Windows currently uses an unsafe fallback implementation,
this needs to be fixed later on.

Task-number: QTBUG-34568

Change-Id: I22fbcbec57b28f9cc8a49e12f1cc6e53e4f07888
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
10 years agoDon't call receivers from disconnectNotify
Alan Alpert [Sat, 16 Nov 2013 20:45:15 +0000 (12:45 -0800)]
Don't call receivers from disconnectNotify

A pending documentation update is going to explain that you can't call
into QObject functions from disconnectNotify, or it may deadlock
on the signalSlot mutex.

Task-number: QTBUG-34829
Change-Id: I57e7b4e457d813d4255c8cdbe36228b2e0f45aaa
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRemove '-enable-debugger' argument from qml executable
Kai Koehne [Thu, 14 Nov 2013 11:38:25 +0000 (12:38 +0100)]
Remove '-enable-debugger' argument from qml executable

Task-number: QTBUG-34836
Change-Id: I3ab2a16036a1086c0ac1f50880a402caf9f54f2d
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoFix lockup in creator.
Gunnar Sletta [Fri, 15 Nov 2013 14:28:33 +0000 (15:28 +0100)]
Fix lockup in creator.

My previous fix to force expose when the render thread is inactive
was not enough. We now lock down access to 'QSGRenderThread::window'
so that it will always be set when the thread is in the "exposed"
state and 0 when the thread is in the "obscured" state.

This introduces another sync point in handleObscurity to protect
the writing of window in the render thread.

Task-number: QTCREATORBUG-10793
Change-Id: I1e1153189b3a3562705892b42625f88ef6329188
Reviewed-by: Ulf Hermann <ulf.hermann@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
10 years agoDo not crash when one of group animation's children is null
Jacek Całusiński [Thu, 14 Nov 2013 16:53:58 +0000 (17:53 +0100)]
Do not crash when one of group animation's children is null

Check if pointer to QQuickAbstractAnimation for which we are setting
group is valid.

Task-number: QTBUG-34851
Change-Id: Iecb549f080804fd9489f884911fa51892def05a5
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRemove version definition from custom particle shaders for OpenGL ES.
Maciej Kujalowicz [Thu, 14 Nov 2013 21:45:18 +0000 (22:45 +0100)]
Remove version definition from custom particle shaders for OpenGL ES.

Since OpenGL ES 2.0 does not support GLSL 1.2, #version 120 must
be removed from embedded shaders for a custom particle.

Task-number: QTBUG-34854
Change-Id: I8d3e51ff87acc099a53c4e312cd33d02e6a1cb4e
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
10 years agoDeprecate logicalPixelDensity
Alan Alpert [Tue, 12 Nov 2013 10:12:04 +0000 (02:12 -0800)]
Deprecate logicalPixelDensity

It's just not working out in practice, and we don't want to confuse
users with having to pick their flavor of pixel density.

Task-number: QTBUG-34798
Change-Id: I552e479515a6f5249685844143601cb7449ccccc
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
10 years agoexamples/quick/window example: fullscreen is possible on OSX
Shawn Rutledge [Fri, 15 Nov 2013 14:17:57 +0000 (15:17 +0100)]
examples/quick/window example: fullscreen is possible on OSX

It's normally disallowed without the WindowFullscreenButtonHint.
But if we're going to declare a value for flags, then we have to
put back the Window type which would otherwise be there by default.

Task-number: QTBUG-33607
Change-Id: Ibbd593b2648b98d37c7f70a0b9f96787b0a40f22
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
10 years agoFix === operator for value types
Lars Knoll [Tue, 12 Nov 2013 08:50:29 +0000 (09:50 +0100)]
Fix === operator for value types

Fix === comparison for urls and other QML value types.

Task-number: QTBUG-33546

Change-Id: I4a7066e6bbc7de7c599fe2c7b2fdfb75e0ff5196
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDoc: Fixed QtQuick.Window documentation
Jerome Pasion [Thu, 14 Nov 2013 16:27:38 +0000 (17:27 +0100)]
Doc: Fixed QtQuick.Window documentation

-fixed import statement in \qmlmodule and \inqmlmodule command.
-Removed extra identifier in property documentation.

Task-number: QTBUG-33360
Change-Id: I1e7ca5f418c327d42247ab4f4a11733c63d8c273
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix stacking order bug in the renderer
Gunnar Sletta [Fri, 15 Nov 2013 06:23:04 +0000 (07:23 +0100)]
Fix stacking order bug in the renderer

Since we are sorting batches based on the zorder of the first element
it is crucial that we don't continue adding to batches once an overlap
with a compatible element is found.

Task-number: QTBUG-34864
Change-Id: Ic2194c5c17bba0bc9874a14e8a69c81bff75bd1c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
10 years agoDon't crash when trying to assign to null.prop
Lars Knoll [Tue, 12 Nov 2013 10:01:06 +0000 (11:01 +0100)]
Don't crash when trying to assign to null.prop

Fixes a regression introduced during the exception handling
refactoring.

Task-number: QTBUG-34544

Change-Id: Ib751274d759030db3e5d3b1380b30dc07ec85f83
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMake tst_qqmlprofilerservice more robust
Kai Koehne [Fri, 15 Nov 2013 12:02:13 +0000 (13:02 +0100)]
Make tst_qqmlprofilerservice more robust

Don't expect only application output to be printed. E.g. a stray
qDebug somewhere in Qt could break this test so far ...

Change-Id: Ibdc31fba3bd8d822c264bd44515d16e648db9a8e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoDon't dereference a null animationTemplate
Lars Knoll [Wed, 13 Nov 2013 07:32:12 +0000 (08:32 +0100)]
Don't dereference a null animationTemplate

If the SpringAnimation gets used inside a Transition, the
animationTemplate might get cleared, but updateCurrentTime()
still gets called on the SpringAnimation after that.

Task-number: QTBUG-34539
Change-Id: I1f27fdbfc594e6ff9a4343e45f7f4001964bb012
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoAvoid deadlock in Qt Creator
Gunnar Sletta [Thu, 14 Nov 2013 14:41:29 +0000 (15:41 +0100)]
Avoid deadlock in Qt Creator

Task-number: QTCREATORBUG-10699
Change-Id: Ia88df5ec4ea74fda6a0449aa739a9c6976fedb02
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
10 years agoImprove internal debug statements.
Gunnar Sletta [Thu, 14 Nov 2013 14:01:36 +0000 (15:01 +0100)]
Improve internal debug statements.

Now that we have one thread per window it is useful to know which
thread and window prints out the messages.

Change-Id: I699eae180575fd3355551ebe0bfe6fd6ac8837c9
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
10 years agoV4 debugging: fix step-over and step-out.
Erik Verbruggen [Thu, 14 Nov 2013 13:16:50 +0000 (14:16 +0100)]
V4 debugging: fix step-over and step-out.

- step-out: only stop if we’re leaving the context for the function we
  previously stopped at, so intermediate calls between the current
  position and the end do not stop the engine
- step-over: set breakpoints on all lines in current function and
  continue to run. When hitting a breakpoint, see if we are in the same
  context, because recursive calls might happen. Breakpoints on all
  lines are needed, because the (pure) next line might be jumped over
  (like when doing step-over a single-line then clause, where the next
  line might be in the else clause).

Change-Id: Idf35dc740ca64fae5079162162906490a96af2a7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
10 years agoV4 debugging: Fix instable test.
Erik Verbruggen [Thu, 14 Nov 2013 11:04:59 +0000 (12:04 +0100)]
V4 debugging: Fix instable test.

Request the scripts after hitting a breakpoint. The reason this test
could fail before, is that the engine might be calling into the debugger
even before any script was loaded.

Change-Id: Iba49f445ab97afaf2bb168b04063432ca2f9dddd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoAllow passing qmlRegisterSingletonType QObjects to C++ as QObject*
Albert Astals Cid [Wed, 13 Nov 2013 10:03:52 +0000 (11:03 +0100)]
Allow passing qmlRegisterSingletonType QObjects to C++ as QObject*

At the moment you can pass them as their FinalType* or
as one of their ParentType* but not as QObject* which
does not make much sense to me

Task-number: QTBUG-34617
Task-number: QTBUG-30730

Change-Id: Id5cfb7bbb123456ef43f44f33b450f8966a7641a
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdapt Qt Quick 2 renderer to work with OpenGL Core Profile
Sean Harmer [Wed, 6 Nov 2013 13:07:58 +0000 (13:07 +0000)]
Adapt Qt Quick 2 renderer to work with OpenGL Core Profile

The basic approach is to have the batched renderer create and bind a
vertex array object if it detects we are using an OpenGL Core profile
context. The VAO is bound for the duration of the QQ2 renderer's
work cycle and unbound at the end so as to not interfere with any
other VAO's a user may wish to use.

All shaders have been copied and ported to be compliant with the
GLSL 150 core specification which is the minimum for a Core profile
context (OpenGL 3.2 Core). We are not using any newer features as
yet so this will work anywhere we can get a Core profile context.

The QSGShaderSourceBuilder class has been extended to resolve any
requests for shaders to the same basefilename with "_core"
appended prior to any file extension. This could be extended in
the future to allow version, or GPU or platform specific shaders.

The QSGShaderSourceBuilder has also been extended to allow it to
insert #define definitions in the prologue of a shader. Any such
definition is inserted:

* After the last #extension directive (if any are found)
* Otherwise after the #version directive (if found)
* Otherwise at the start of the shader source

This is required by the custom particle shaders which make
extensive use of such #defines.

In addition the mechanism used by the distance field glyph cache to
extend the cache with new glyphs has been modified to work (and
work more efficiently) when using a Core profile context.

Rather than using a shader program and a buffer filling quad to
blit the old texture into the new cache texture, we instead use
the technique of framebuffer blitting. The existing fallback
implementation using glTexSubImage2D() is still available if
needed.

The DECLARATIVE_EXAMPLE_MAIN macro has been extended to allow easy
testing of any of the QtDeclarative examples with a core profile
context. Just run the example with

QT_QUICK_CORE_PROFILE=1 ./text

for e.g. The only ones that may not work out of the box are those
that provide GLSL shader source e.g. the customparticles or
shader effect examples. These work fine if the shader source is
adapted to GLSL 150 core.

In the future it may be a good idea to expose some context property
to QML that the user can use to determine what shader source
variation to provide to Qt Quick. Along these lines it would also
be very nice to allow the provision of shader source to
ShaderEffect or CustomParticle from a separate source file just as
we now do within Qt Quick.

Task-number: QTBUG-32050
Change-Id: Ia6e9f06dbb8508af9ae03c6b60fb418b4cc9e41f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoDoc: Adding FontDialog type to group "dialogs".
Jerome Pasion [Tue, 12 Nov 2013 10:58:23 +0000 (11:58 +0100)]
Doc: Adding FontDialog type to group "dialogs".

-needed for FontDialog to show up in the landing page.

Task-number: QTBUG-33360
Change-Id: Ic3ea5722e963045704e81a673ebd85770c0253a3
Reviewed-by: Matti Paaso <matti.paaso@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoMake tst_nodes use QSGRenderLoop to behave more like QQuickWindow
Gunnar Sletta [Tue, 12 Nov 2013 12:49:51 +0000 (13:49 +0100)]
Make tst_nodes use QSGRenderLoop to behave more like QQuickWindow

Change-Id: I284164a45cabdb9f1fdbc2050db0cb00810ce946
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
10 years agoFix native compilation on linux/arm with gcc 4.7.2
Erik Verbruggen [Tue, 12 Nov 2013 15:30:14 +0000 (16:30 +0100)]
Fix native compilation on linux/arm with gcc 4.7.2

/disk/qt5-dev/qtdeclarative/src/qml/jsruntime/qv4function.cpp: In instantiation of ‘int QV4::LineNumberMappingHelper<field, SearchType>::lowerBound(int, int, SearchType) [with int field = 0; SearchType = int]’:
/disk/qt5-dev/qtdeclarative/src/qml/jsruntime/qv4function.cpp:142:49:   required from here
/disk/qt5-dev/qtdeclarative/src/qml/jsruntime/qv4function.cpp:106:13: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
cc1plus: all warnings being treated as errors

Change-Id: Ic97d6a2a9acd392d565e9c66f30159552473e092
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRevert ffaf39e9a7f11d4e2800b3b37160a2a952795614
Alan Alpert [Tue, 12 Nov 2013 09:56:35 +0000 (01:56 -0800)]
Revert ffaf39e9a7f11d4e2800b3b37160a2a952795614

Making it public right now seems a little premature, given all the work
happening on the engine now (and for 5.3). We'll be in a better position
to commit to it or not next release.

Change-Id: Ib7b14afeb9205fb8a87ed16a6d38b1f468b2bbbb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoPolish up QQmlFileSelector
Alan Alpert [Tue, 12 Nov 2013 08:11:43 +0000 (00:11 -0800)]
Polish up QQmlFileSelector

Incorporate beta feedback, and hide QQmlAbstractUrlInterceptor as the
implementation (instead of making that "the API").

Change-Id: Ib7b14afeb9205fb8a87ed16a6d38b1f468b2aaaa
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix warnings about deprecated string conversions in V4-debugservice.
Friedemann Kleint [Wed, 13 Nov 2013 07:51:37 +0000 (08:51 +0100)]
Fix warnings about deprecated string conversions in V4-debugservice.

Change-Id: I1b45876d2016fdcf1117c4f77b33c75f7d712657
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix boundingbox calculation of rotated items.
Gunnar Sletta [Tue, 12 Nov 2013 11:13:11 +0000 (12:13 +0100)]
Fix boundingbox calculation of rotated items.

Task-number: QTBUG-34328

Change-Id: If0202a67d95500333a0fb6f4ca3eb19ecb027770
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix property dependency generation for accelerated QML QObject properties
Simon Hausmann [Sat, 2 Nov 2013 19:35:33 +0000 (20:35 +0100)]
Fix property dependency generation for accelerated QML QObject properties

The previous approach of collecting the dependencies through an IR visitor
doesn't work, because it relies on a fixed structure - for example MEMBER(NAME,
prop) - which we can't guarantee (it's usually MEMBER(TEMP, prop)). But it
turns out that we can only pre-calculate dependencies for context, scope or id
properties, so we can do that right away in the QML specific JS codegen, store
that information in the IR function and use it from there in the data structure
generator as well as in the isel as a parameter to getQObjectProperty to tell
the run-time whether capture is required or not.

Change-Id: I33711c3420d6534c653c2a6a4284f0fc12e941cf
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoFix out of bounds array index in the generated JIT code
Lars Knoll [Mon, 11 Nov 2013 14:08:41 +0000 (15:08 +0100)]
Fix out of bounds array index in the generated JIT code

When converting a double to int, make sure we check for >= 0
before using it, otherwise we get out of bounds accesses.

Task-number: QTBUG-34635
Change-Id: If72e116c08fe1dff03cd88ce510cf8b96d249b92
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
10 years agoV4 IR: change basic-block cleanup to remove unreachable cycles too.
Erik Verbruggen [Tue, 12 Nov 2013 13:55:14 +0000 (14:55 +0100)]
V4 IR: change basic-block cleanup to remove unreachable cycles too.

The previous version left unreachable cycles untouched. For example in:

function f() {
  if (false)
    while (true) { doSomething(); }
  anotherThing();
}

The edge to the then-part would be removed, but the loop itself would
not be removed. This resulted in the basic-block scheduler choking when
hitting the block with the anotherThing() call, because it wants to have
all blocks from incoming edges resolved first.

Task-number: QTBUG-34776
Change-Id: I5b3a79140e6058c4ade4ec7687c1a795f1a74f97
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
10 years agoUpdate .qmltypes files for 5.2
Alan Alpert [Mon, 11 Nov 2013 08:35:08 +0000 (00:35 -0800)]
Update .qmltypes files for 5.2

Task-number: QTBUG-34601
Change-Id: Icf5bdc2ea66b9a13186de957d5ae9c8701b481c7
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoQtQuick.Dialogs: hide internal functions and properties
Shawn Rutledge [Tue, 12 Nov 2013 07:57:35 +0000 (08:57 +0100)]
QtQuick.Dialogs: hide internal functions and properties

with double-underscores

Change-Id: If397bfaf50e0878516296eb4237bcf012eb8dae4
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoFix Object::getArrayHeadRoom()
Lars Knoll [Tue, 12 Nov 2013 11:17:14 +0000 (12:17 +0100)]
Fix Object::getArrayHeadRoom()

The method didn't adjust the size of the allocated array
properly, leading to crashes when being called repeatedly.

Task-number: QTBUG-34723
Change-Id: Ib58e7dcab6d0f5f46f3cf342eb541c1cc6b6cdc6
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
10 years agoFix Canvas2d.createConicalGradient
Lars Knoll [Tue, 12 Nov 2013 12:41:53 +0000 (13:41 +0100)]
Fix Canvas2d.createConicalGradient

The method requires 3 arguments, not 6

Task-number: QTBUG-34718
Change-Id: Ib6c117ba18844acecea3707720c0c88449b50fb6
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
10 years agoRemove unused _info on non-debug builds
Shawn Rutledge [Tue, 12 Nov 2013 12:35:21 +0000 (13:35 +0100)]
Remove unused _info on non-debug builds

Otherwise clang generates a warning which is fatal because of
treating warnings as errors.

Change-Id: I47c280edf6b0f8efa5ce24f9e92551304aed15fb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
10 years agoV4 JIT: fix invalid sanity assert.
Erik Verbruggen [Tue, 12 Nov 2013 10:29:17 +0000 (11:29 +0100)]
V4 JIT: fix invalid sanity assert.

If there are multiple incoming edges to a block, and there are one or
more phi nodes at the start, then only check the temp uses for the edge
we are resolving.

Task-number: QTBUG-34770

Change-Id: Ibb5c7c323d6be8bc1ed492b08ed098de2f2726cc
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
10 years agoV4 IR: scan arguments when entering function scope in QML.
Erik Verbruggen [Mon, 11 Nov 2013 15:13:00 +0000 (16:13 +0100)]
V4 IR: scan arguments when entering function scope in QML.

When doing IR generation for a function declaration in a QML object,
call through the helper methods to check for forbidden names, and most
importantly, also checks if the function has parameters. If the latter
is the case, they need to be added as a member for the current scope
in order to get IR generation correct.

Task-number: QTBUG-34493

Change-Id: I0ade15ee19e1b1ac8ee2f2d3fa186d1551800199
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoV4: fix loop block marking for initializer blocks.
Erik Verbruggen [Mon, 11 Nov 2013 13:23:50 +0000 (14:23 +0100)]
V4: fix loop block marking for initializer blocks.

Any new blocks generated as part of the initializer were incorrectly
marked as belonging to a loop. For example, if a LocalForStatement
would contain a ternary expression, the generated then and else blocks
would be marked. This would confuse the block scheduling, because all
blocks are postponed unil the condition block (“group start”) is
scheduled.

Task-number: QTBUG-33754

Change-Id: I45919ebeac356f015bb91fe0210472b3df0b56d8
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoV4 interpreter: remove stack-slot allocator.
Erik Verbruggen [Mon, 11 Nov 2013 12:21:07 +0000 (13:21 +0100)]
V4 interpreter: remove stack-slot allocator.

The life-ranges are only valid when the IR is in SSA form. So the use
of them in the interpreter after converting out of SSA form introduced
bugs. Instead, allocate a stack-slot for each unique temporary, and
re-use the code for this from the JIT.

Change-Id: I294f1116064f0b85996cf96a0b408b41a3c785e2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoImprove qmlimportscanner.
Morten Johan Sørvig [Fri, 18 Oct 2013 09:11:28 +0000 (11:11 +0200)]
Improve qmlimportscanner.

Fix several qmlimportscanner defects:

- Expand qml file search to include subdirectories.
This applies to search paths specified with "-rootPath"

- Add "-qmlFiles" for specifying the file list directly

- Parse files with UTF8 BOMs correctly

- Don't set properties where the value is the empty string

Change-Id: I81a538d73487b49fb635c18ef4fe479748ba0bfc
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
10 years agoAdd a verbose mode to qml
Alan Alpert [Wed, 23 Oct 2013 22:37:16 +0000 (15:37 -0700)]
Add a verbose mode to qml

The extra output is primarily useful for debugging, and on windows it
will actually make an ugly command prompt window appear.

Change-Id: I552e479515a6f5249685844143601cb7449a10b5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
10 years agoIntercept qmldir files with the url interceptor
Alan Alpert [Thu, 18 Jul 2013 13:02:37 +0000 (06:02 -0700)]
Intercept qmldir files with the url interceptor

There's another code path which loads qmldir files directly, and it did
not use the interceptor when available.

Note that this, like other interceptors, does not affect baseUrl and so
any other qmldir file still must have paths relative from the initial URL.

Change-Id: I620943c36d488d22fbaf1793514075d31ab76e3e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoImplement missing compare() function for Raised/Sunken text
Gunnar Sletta [Mon, 11 Nov 2013 07:30:43 +0000 (08:30 +0100)]
Implement missing compare() function for Raised/Sunken text

Task-number: QTBUG-34715

Change-Id: Ifdac2511b7f642b1ea4bd06847c840b5a951a753
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
10 years agoAnimate when only one out of several windows is exposed.
Gunnar Sletta [Fri, 8 Nov 2013 06:34:55 +0000 (07:34 +0100)]
Animate when only one out of several windows is exposed.

Change-Id: I7f76ed722f91076ee308a47c699984d371a220f0
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
11 years agoDebugging with V4
Erik Verbruggen [Wed, 16 Oct 2013 10:29:47 +0000 (12:29 +0200)]
Debugging with V4

Currently missing, but coming in subsequent patches:
- evaluating expressions
- evaluating breakpoint conditions

Change-Id: Ib43f2a3aaa252741ea7ce857a274480feb8741aa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agomoveOffset in QQuickPathView::modelUpdated uninitialized
Marco Bubke [Wed, 6 Nov 2013 12:00:12 +0000 (13:00 +0100)]
moveOffset in QQuickPathView::modelUpdated uninitialized

Get a error for compiling with gcc 2.8.1.

Change-Id: If93ed69695fb523eff05cae2960e3743dc496310
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
11 years agoFix assert with native text rendering.
Gunnar Sletta [Wed, 6 Nov 2013 11:08:42 +0000 (12:08 +0100)]
Fix assert with native text rendering.

The renderer only passed the very first node's material to
updateState() as "new", yet pass the following node's materials to
updateState() as "old". This triggered an assert in the
QSGTextMaskMaterial's updateState as the native text nodes are invalid
until they get called with their own material as "new". This goes
against how the scene graph is supposed to be used, but update the
code in the renderer regardless as this used to work and the fix
there is not wrong.

Every node in a batch has identical material, so pass the same
instance for both "new" and "old" except for the first node
in the batch which gets old==0.

Change-Id: Ie8ae6fcd63adde08d80e9083e910836ede6694ee
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
11 years agoAvoid using huge floating point values in the renderer.
Gunnar Sletta [Wed, 6 Nov 2013 09:06:27 +0000 (10:06 +0100)]
Avoid using huge floating point values in the renderer.

We pretransform vertices relative to their batch root and upload these
using single-precision floats. If the offsets are huge then the
floating point numbers start to get unstable and we get rendering
artifacts as a result. This typically happens for lists/tables with
huge models.

Task-number: QTBUG-34312
Change-Id: I2516f2b4fa93f44a1288659d05458fb1af0df943
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
11 years agoAdd a new variant of qmlRegisterSingletonType for QML singletons.
Antti Piira [Mon, 28 Oct 2013 23:17:36 +0000 (16:17 -0700)]
Add a new variant of qmlRegisterSingletonType for QML singletons.

Adds a new public API to register a QML based singleton type from
C++. This is the equivalent of the the qmlRegisterType, but for
singletons. qmldir file is not needed for types registered through
this function, but the type still needs to include the following
pragma statement among the import statements:

pragma Singleton

Change-Id: Icb35b665fe2a8605667fe8ac575347be2a60490c
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
11 years agoFallback to native font rendering for bitmap fonts.
Yoann Lopes [Wed, 30 Oct 2013 17:03:23 +0000 (18:03 +0100)]
Fallback to native font rendering for bitmap fonts.

Distance field rendering requires glyph outlines, which are not
available for bitmap fonts.

Task-number: QTBUG-32737
Change-Id: I64569e4e6b2285ca998b5f80ec31ab04cf1f3d09
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
11 years agoFor x86 builds, try to detect SSE2 availability early and bail out
Simon Hausmann [Fri, 8 Nov 2013 14:27:51 +0000 (15:27 +0100)]
For x86 builds, try to detect SSE2 availability early and bail out

...instead of potentially just crashing. This is for the rare case
of somebody trying to run a QML2 based application on a Pentium 3
from before 2001 or older.

Change-Id: Ia5606fe28ef5579654ec939c86830af70dbb84d7
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
11 years agoRemove stray warn_off in pri file
Lars Knoll [Sun, 3 Nov 2013 14:26:34 +0000 (15:26 +0100)]
Remove stray warn_off in pri file

Change-Id: I9abf1180aecbd2e87fa7f52b51ad1c59665723fc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoFix a few more compiler warnings in release builds
Lars Knoll [Sat, 2 Nov 2013 10:18:08 +0000 (11:18 +0100)]
Fix a few more compiler warnings in release builds

Change-Id: I826226b7ddd4a74037b5bbe9a4a7322d404f53a9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoWorkaround for glyph upload bug with the Mali-400 GPU.
Yoann Lopes [Fri, 8 Nov 2013 14:55:15 +0000 (15:55 +0100)]
Workaround for glyph upload bug with the Mali-400 GPU.

Uploading unaligned and alpha-only data seems to be broken with that
GPU, uploading line by line does the trick.

Task-number: QTBUG-33951
Change-Id: I2790990ca1d3a3016ec3d9fefaea7002b92faeb7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
11 years agoMake QQuickWindow::forcePolish() private.
Morten Johan Sørvig [Fri, 8 Nov 2013 14:40:30 +0000 (15:40 +0100)]
Make QQuickWindow::forcePolish() private.

Adding public API was not the intention when adding
this slot.

Change-Id: If477917c434b32d5e5cd1fa6c640f1a6b167dd24
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
11 years agoRemove include of empty QAccessible2 header
Frederik Gladhorn [Thu, 7 Nov 2013 18:49:29 +0000 (19:49 +0100)]
Remove include of empty QAccessible2 header

Change-Id: I62dd3364909179c364e91682e4cece8ae5a847d4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
11 years agoRemove debug output
Eskil Abrahamsen Blomfeldt [Fri, 8 Nov 2013 14:10:51 +0000 (15:10 +0100)]
Remove debug output

Some applications (like e.g. the Tweet Search example) prints out
a ton of these "scanEscape" messages to the console.

Change-Id: Ibfa9c4780705167693c7fb6af8cad1e312549a5f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
11 years agoMove Primitive::emptyValue() to qv4value_def_p.h.
Friedemann Kleint [Fri, 8 Nov 2013 08:39:25 +0000 (10:39 +0200)]
Move Primitive::emptyValue() to qv4value_def_p.h.

Silence MinGW-warnings:  warning: 'static QV4::Primitive
QV4::Primitive::emptyValue()' redeclared without dllimport attribute
after being referenced with dll linkage

Task-number: QTBUG-34152

Change-Id: Id6971a20f1901022ab0d1c8f1834b135c71510ae
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
11 years agoRemove debugging tests for commands not used by Qt Creator.
Erik Verbruggen [Wed, 6 Nov 2013 09:16:00 +0000 (10:16 +0100)]
Remove debugging tests for commands not used by Qt Creator.

These are also not (yet) implemented in the V4 debugging engine.

Change-Id: If47b97535e69117193b87d278131f19bd4120c57
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
11 years agoInitialize variable
Lars Knoll [Fri, 8 Nov 2013 15:24:23 +0000 (16:24 +0100)]
Initialize variable

Change-Id: I540b08bd1c60215a63cad1233f09e060b70df66f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoSimplify & speed up function calling
Lars Knoll [Sun, 3 Nov 2013 14:23:05 +0000 (15:23 +0100)]
Simplify & speed up function calling

Get rid of the SimpleCallContext, instead simply
use the CallContext data structure, but don't
initialize the unused variables.

Change-Id: I11b311986da180c62c815b516a2c55844156d0ab
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoFix crash in animation controller upon destruction
Simon Hausmann [Sat, 9 Nov 2013 00:58:28 +0000 (01:58 +0100)]
Fix crash in animation controller upon destruction

Triggered by tst_examples, it appears that we can have jobs in
m_deleting that are also still listed in m_starting. So similar to
what we do in beforeNodeSync, we now also take any deletion-scheduled
jobs out of m_starting/m_stopping in the destructor.

Change-Id: I2e00570a4e4669f8172354bf5806c5285920030a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
11 years agoGeneralize check for localtime_r
Kai Koehne [Thu, 7 Nov 2013 08:08:05 +0000 (09:08 +0100)]
Generalize check for localtime_r

Use the _POSIX_THREAD_SAFE_FUNCTIONS define to decide
whether localtime_r is available, instead of guessing
by Mingw-w64 version.

This copies the logic of qdatetime.cpp in qtbase, and
should fix compilations with older Mingw-w64 versions.
It replaces ce3e8f93c.

Task-number: QTBUG-34038
Change-Id: Iee8a9aa61d2af3e069e6365c40f81007c479d147
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoMessageDialog: handle clicked(button, role) signal properly
Shawn Rutledge [Thu, 7 Nov 2013 17:31:47 +0000 (18:31 +0100)]
MessageDialog: handle clicked(button, role) signal properly

Depends on I7be753080794adabb784df9b95ac04aa1c29151c in qtbase.
Now the Android native dialog can provide the same functionality as
the QML and QMessageBox implementations.

Change-Id: Icc9c610669742199d48497096524f6cf8ed4d835
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
11 years agoDefaultMessageDialog: use gadget StandardButton type
Shawn Rutledge [Thu, 7 Nov 2013 17:28:38 +0000 (18:28 +0100)]
DefaultMessageDialog: use gadget StandardButton type

Followup to e17ae3b8b716b00c7cb6156347101f2e789dbd58 : Message.Ok etc.
are no longer available.

Change-Id: I30fc054fc6ace7dc48951739c88f49db2291a7a9
Reviewed-by: BogDan Vatra <bogdan@kde.org>
11 years agoFill recursive ShaderEffectSource with transparent when using alpha.
Gunnar Sletta [Thu, 7 Nov 2013 10:08:49 +0000 (11:08 +0100)]
Fill recursive ShaderEffectSource with transparent when using alpha.

The logic relies on m_fbo being 0 on the first render pass, in which
case it will pick texture id 0 which is solid black. Though this
works ok, it results in recursive shader effect sources starting
out black which is ugly.

Change-Id: I22b1d50e02c00583837b8152c5fb850263038a93
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
11 years agoFix FolderListModel versioning
J-P Nurmi [Wed, 6 Nov 2013 11:38:47 +0000 (12:38 +0100)]
Fix FolderListModel versioning

Task-number: QTBUG-34448
Change-Id: Idebfdc123a7b908988c9ae86d7db4831ad0e4433
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
11 years agoFix crash when invalidating QSGContext.
Yoann Lopes [Tue, 5 Nov 2013 14:17:03 +0000 (15:17 +0100)]
Fix crash when invalidating QSGContext.

A pointer list was not cleared when invalidating the context,
potentially holding dangling pointers after that.

Change-Id: I0618c54ffa67b31b115901e8be3a6d3cd16dc844
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
11 years agoRefactored Animator internals
Gunnar Sletta [Fri, 1 Nov 2013 14:49:33 +0000 (15:49 +0100)]
Refactored Animator internals

Change the design from posting events for starting and stopping
to use the scene graph's existing 'sync' point. This gives
much higher predictability and makes both ownership and cleanup
cleaner and also reduces intermediate states while events are
waiting to be delivered.

Task-number: QTBUG-34137
Change-Id: I069ac22acbddaa47925b8172ba98ac340fe9bf8d
Reviewed-by: Michael Brasser <michael.brasser@live.com>
11 years agoVersion pixelDensity consistently
Alan Alpert [Wed, 6 Nov 2013 05:16:29 +0000 (21:16 -0800)]
Version pixelDensity consistently

Change-Id: I06bbdc6e6869718058a796ca737668ce69802f2c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
11 years agoInitialize variables before using them.
Sérgio Martins [Wed, 6 Nov 2013 15:04:10 +0000 (15:04 +0000)]
Initialize variables before using them.

Change-Id: I7cd5a17259814b3f2405b63d7f4d2a0fd30cae4d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoReplace QString::fromUtf8() with QString::fromLatin1() for literals
Kai Koehne [Wed, 6 Nov 2013 14:13:59 +0000 (15:13 +0100)]
Replace QString::fromUtf8() with QString::fromLatin1() for literals

The literals are all latin1 strings, and fromLatin1() is much faster.

Change-Id: I25af0358a0a4aa2e973349c027cfac50b7589429
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
11 years agoDoc: Updated url variable in qdocconf files.
Jerome Pasion [Tue, 5 Nov 2013 12:13:56 +0000 (13:13 +0100)]
Doc: Updated url variable in qdocconf files.

In 5.2, the HTML output is in a flatter structure and when they are
hosted in qt-project.org/doc, the documentation will be found at
http://qt-project.org/doc/qt-$QT_VER

The url variable is used by projects outside of Qt 5 which need
to link to Qt 5 documentation, such as Qt Creator.

Task-number: QTBUG-34584
Change-Id: Ie23c3748fbe780fa00f98404238099809df5ef06
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
11 years agoFix build on WinRT
Andrew Knight [Tue, 5 Nov 2013 22:23:44 +0000 (00:23 +0200)]
Fix build on WinRT

Disable JIT and avoid unsupported functions under WinRT.
Also add MSVC's ARM flag to the double conversion white list.

Change-Id: I22ec340a20b113fdeefb802ac61812f78a527895
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoEnsure the this object is set correctly to the scope object in binding expressions
Simon Hausmann [Mon, 4 Nov 2013 01:48:16 +0000 (02:48 +0100)]
Ensure the this object is set correctly to the scope object in binding expressions

This is a regression from 5.1

Change-Id: I61ad372a02d937c195dad74bd9fcb8fd4410d97a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
11 years agoFix QQuickText hover event handling
J-P Nurmi [Tue, 29 Oct 2013 16:25:00 +0000 (17:25 +0100)]
Fix QQuickText hover event handling

Catch hover events only when the item contains either rich or styled
text, and make sure to ignore hover events as appropriate to propagate
them further.

Task-number: QTBUG-33842
Change-Id: Idef5be7c502711393ab532c4ace31663b0e0a872
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
11 years agoFix XHR
Lars Knoll [Tue, 5 Nov 2013 18:36:58 +0000 (19:36 +0100)]
Fix XHR

Return after throwing an exception. Fixes the XHR autotest

Change-Id: Id3412eeb2c9867d3ad9bd64b3a81c4468c5b5bd5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoGenerate inline code for "foo == null/undefined"
Lars Knoll [Tue, 15 Oct 2013 21:35:52 +0000 (23:35 +0200)]
Generate inline code for "foo == null/undefined"

Change-Id: I81f5708034ed50207afde697e377e8f265cbcd1c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoSmaller optimisations
Lars Knoll [Sat, 2 Nov 2013 20:41:58 +0000 (21:41 +0100)]
Smaller optimisations

Change-Id: Idb35d57801472e73b4e77b83e129dbb2a484b734
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoRemove 2 unused macros
Lars Knoll [Sat, 2 Nov 2013 20:13:41 +0000 (21:13 +0100)]
Remove 2 unused macros

Change-Id: I095673b56166f47969583e9aff30bcef1e50a674
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoMove conversion of this object into generated code
Lars Knoll [Sat, 2 Nov 2013 20:10:13 +0000 (21:10 +0100)]
Move conversion of this object into generated code

When a non strict mode function uses the this object, we
need to make sure it's being correctly converted into a
object before being accessed. So far this was being done
by ScriptFunction::call. Move this into the generated code to
avoid overhead for methods not using 'this', and simplify our
ScriptFunction::call() implementation.

Change-Id: I739f4a89d29ed8082ce59e48d1523776224fc29d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoDon't initialize locals for simple script functions
Lars Knoll [Sat, 2 Nov 2013 18:56:09 +0000 (19:56 +0100)]
Don't initialize locals for simple script functions

There are not being used anyway.

Change-Id: Id61b023eeb9d61bbee2874a5fd5005ba9fb08fca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoMinor optimisations
Lars Knoll [Sat, 2 Nov 2013 18:25:11 +0000 (19:25 +0100)]
Minor optimisations

Remove a couple of function calls.

Change-Id: I5abc6d96df52787ee7c433239807c851eb9a6d41
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoRemove code that's not required anymore
Lars Knoll [Sat, 2 Nov 2013 18:23:46 +0000 (19:23 +0100)]
Remove code that's not required anymore

The StackSaver class is not required anymore, as we don't
throw C++ exceptions anymore, and masm/moth generated code
always cleans up the JS stack.

Change-Id: If49d952230f8bd074f3b9353f56c07c8c5134752
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoDon't run the GC too often
Lars Knoll [Sat, 2 Nov 2013 17:39:55 +0000 (18:39 +0100)]
Don't run the GC too often

Some test cases were badly trashing the GC, running it
way too often. Fix this by only running the GC after
we allocated more than 50% of the amount of available
items.

Change-Id: Icfe6d0730552ef2298963de706213ebc9e3e342c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoOptimise string additions
Lars Knoll [Sat, 2 Nov 2013 16:11:06 +0000 (17:11 +0100)]
Optimise string additions

Small optimisation for string additions, also add one more check
for exceptions in the code where required.

Change-Id: I6c14bc88ea5d03f7eeed0e0168c5195f9f823693
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoFix rounding behavior of Qml when assigning doubles to integer properties
Simon Hausmann [Tue, 5 Nov 2013 12:20:24 +0000 (13:20 +0100)]
Fix rounding behavior of Qml when assigning doubles to integer properties

The engine used to round, but that is inconsistent with ECMAScript's way of
converting doubles to integers by truncation.

With this patch we can also enable the propagation of integer type information
into the IR, but we have to be careful not to utilize it when writing
properties.

Change-Id: I04af4879ba5131349eca2eeff2b27f4598f5267b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
11 years agoRemove time type documentation
Alan Alpert [Tue, 5 Nov 2013 01:13:47 +0000 (17:13 -0800)]
Remove time type documentation

While the time type does technically exist, it cannot be created from
QML. Pending a discussion about its future, the doc will be temporarily
removed to avoid confusing people.

Task-number: QTBUG-32295
Change-Id: Ic171a7f4a5d7c0515427a6d1d65bed0abcfe3643
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoDon't propagate mouse events to disabled MouseAreas
Alan Alpert [Mon, 4 Nov 2013 21:29:12 +0000 (13:29 -0800)]
Don't propagate mouse events to disabled MouseAreas

Task-number: QTBUG-34368
Change-Id: I28d4f57e51300f12a7bab5d215933762102f3916
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
11 years agoRefactor marking GC'ed objects
Lars Knoll [Sat, 2 Nov 2013 15:30:26 +0000 (16:30 +0100)]
Refactor marking GC'ed objects

Don't use recursive function calls anymore. Instead, push marked
objects onto the JS stack, and then pop them off when their children
are being marked.

Should reduce stack memory usage, and improves performance by ~5%.

Change-Id: I2d37d97579144fcba87ec8e9fd545dd220c01fbb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
11 years agoAdd missing Q_INIT_RESOURCE
Tor Arne Vestbø [Mon, 4 Nov 2013 13:24:26 +0000 (14:24 +0100)]
Add missing Q_INIT_RESOURCE

The library needs to do Q_INIT_RESOURCE for all resources it uses
internally, otherwise static linking will fail, and the user has
no idea how to rectify it as the name of the missing resource is
not known.

Change-Id: I8ea766e63cff22bbb0c45e6125c3a07948de2274
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>