platform/upstream/qtdeclarative.git
10 years agofix whitespace
Oswald Buddenhagen [Wed, 15 Jan 2014 21:01:15 +0000 (22:01 +0100)]
fix whitespace

remove trailing spaces and expand tabs

Change-Id: Ieacb9d096b612c45d1a64700044c114d1f7522bc
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFurther pack messages for QQmlProfilerService
Ulf Hermann [Thu, 16 Jan 2014 12:18:05 +0000 (13:18 +0100)]
Further pack messages for QQmlProfilerService

Allow multiple detailTypes in each packet and extend the profiling code
to make use of that. Note that this changes the usual order of
pixmapSizeKnown and PixmapLoadingFinished events. As far as I can see
this doesn't affect the QML profiler frontend and the order of these
events isn't specified anywhere.

Change-Id: Id39ad98594ccf35add4415e08daf9e92ab561237
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoPut calls to QQmlVmeProfiler behind "if (enabled)" macros
Ulf Hermann [Tue, 7 Jan 2014 09:29:45 +0000 (10:29 +0100)]
Put calls to QQmlVmeProfiler behind "if (enabled)" macros

The construction of arguments to those calls may be expensive and should
be avoided if we're not really profiling.

Task-number: QTBUG-35315
Change-Id: I558fa4cae6cf532d22193283f1ee2a3b680e2eee
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoPut multiple QML profiling messages into one object where possible
Ulf Hermann [Mon, 6 Jan 2014 12:48:23 +0000 (13:48 +0100)]
Put multiple QML profiling messages into one object where possible

As most of the QML profiling messages only use a small subset of the
available fields in QQmlProfilerData we can
a, reduce the size of QQmlProfilerData by using unions
b, put multiple messages into one object where their data doesn't
   overlap
Furthermore we can add another field for saving QUrl members in
QQmlProfilerData so that we can combine more different messages
and don't have to convert from QUrl to QString while profiling. This
should reduce the impact of the profiling code on the performance
of the application being profiled.

Task-number: QTBUG-35315
Change-Id: Iecd61e90cc8490d2efbbb381391d98dfee61d3cd
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUnify calls to profiler service event methods.
Ulf Hermann [Thu, 2 Jan 2014 17:07:32 +0000 (18:07 +0100)]
Unify calls to profiler service event methods.

Don't needlessly duplicate information about the profiler being available
and allow inlining. Use macros to check availability of the profiler
in calling code and generally simplify the code.

Task-number: QTBUG-35315
Change-Id: I0a9daec4a95f74b9db795ef2918a01fb772ea107
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
10 years agoSplit ManagedVTable into two classes
Lars Knoll [Mon, 20 Jan 2014 12:51:00 +0000 (13:51 +0100)]
Split ManagedVTable into two classes

Keep the basic methods in ManagedVTable, but have
the Object related stuff in an ObjectVTable class.

Change-Id: I9b068acf3caef813686227b8d935e7df1a7d1a6e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdd missing test data files to .pro
Ulf Hermann [Mon, 20 Jan 2014 09:25:33 +0000 (10:25 +0100)]
Add missing test data files to .pro

Change-Id: I7e53877de266c1c11509bbd7c4c558be837df462
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdjust method naming to be closer to Managed
Lars Knoll [Mon, 20 Jan 2014 11:15:26 +0000 (12:15 +0100)]
Adjust method naming to be closer to Managed

Also make markObjects() virtual, to be in line with
Managed.

Change-Id: I3e7682216660e2027c02c9181e541b12310902f3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoReorder members in ManagedVTable
Lars Knoll [Mon, 20 Jan 2014 10:43:25 +0000 (11:43 +0100)]
Reorder members in ManagedVTable

This is to prepare splitting it up into a
several type dependent vtables.

Change-Id: I5de8234e40ffc73fab47d43f4a1b30d244fc6ad9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse lookups for indexed accesses
Lars Knoll [Fri, 17 Jan 2014 11:19:34 +0000 (12:19 +0100)]
Use lookups for indexed accesses

This speeds up reading array data from objects significantly.

Change-Id: I5d17a7b3e7583a16dc76d1ee6cbc1d7134e4c2fa
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdd a SimpleArrayData class
Lars Knoll [Mon, 13 Jan 2014 08:09:14 +0000 (09:09 +0100)]
Add a SimpleArrayData class

This makes the ArrayData class 'pure virtual'. SimpleArrayData
now contains the implementation of simple arrays. This makes the
separation between simple and sparse arrays a lot cleaner.

It also allows us to move len and offset from the base class into
the SimpleArrayClass. This fixes some bugs where we accessed len
for sparse arrays leading to some buggy behavior.

Added a virtual length() method to ArrayData to query the highes
used index in the Array.

Change-Id: Iab2ba2a48ebe5b7031759eeb4ebe02b4d86233f0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoSave memory on array data
Lars Knoll [Thu, 9 Jan 2014 10:05:08 +0000 (11:05 +0100)]
Save memory on array data

Store a simple vector of Values in the array data,
instead of a Vector of Property's. This halfes the
memory consumption on 64bit and simplifies our code.

If an indexed property gets converted to an accessor
property, we simply convert the ArrayData into a
SparseArrayData.

Add support in SparseArrayData to allocate double slots
(two Value's) to hold a full Property in case someone
sets an accessor on an indexed property.

Some methods still return a Property*, but this is safe, as
only the first Value in the Property pointer will ever get
accessed if the Property doesn't contain an accessor.

Change-Id: Ic9b0f309b09a2772a328d947a10faaf3be9fe56f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoChanges to the structure of Property
Lars Knoll [Wed, 8 Jan 2014 14:59:34 +0000 (15:59 +0100)]
Changes to the structure of Property

Put the getter into the regular value, and the setter into
the next value following. Like this we can compress property
data to only use 8 bytes per property for regular properties
and simply allocate two slots for accessor properties.

Change-Id: I330b95dbd583ebc2658fed79d37ac3b53492c0cd
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFixes to sparse array handling
Lars Knoll [Thu, 9 Jan 2014 15:48:56 +0000 (16:48 +0100)]
Fixes to sparse array handling

deleting entries in sparse arrays could lead
to rather unexpected results where values got
moved to wrong indices, as we didn't correctly
update the size_left values in the red-black tree.

Change-Id: If71fcc04d39f257194394cb4f734d0db14b92b69
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoSmall bug fix
Lars Knoll [Wed, 8 Jan 2014 14:13:30 +0000 (15:13 +0100)]
Small bug fix

Change-Id: I5c670d898cd7a049de6f8a78d966df1c6fbde2c5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix a small bug in queryIndexed() for StringObjects
Lars Knoll [Wed, 8 Jan 2014 13:57:07 +0000 (14:57 +0100)]
Fix a small bug in queryIndexed() for StringObjects

The string is immutable, thus queries indexing into the
string data need to return Attr_NotWritable|Attr_NotConfigurable
(see 15.5.5.2 of the ecma spec).

Change-Id: I180d983b04a209c29fcd37b11682999b57bc42fe
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoDon't return a Property pointer in Object::advanceIterator
Lars Knoll [Wed, 8 Jan 2014 13:51:33 +0000 (14:51 +0100)]
Don't return a Property pointer in Object::advanceIterator

Change-Id: Iac4cb2a2252b18e40455910e51e3e374df7c1e80
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove Property * return value from ObjectIterator
Lars Knoll [Wed, 8 Jan 2014 12:08:41 +0000 (13:08 +0100)]
Remove Property * return value from ObjectIterator

The added side effect is that the QJSValueIterator is now
somewhat faster.

Change-Id: I01ba9f2a72a34224f5691130df69a91ab75b72e6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoclean up Object::has(Own)Property
Lars Knoll [Wed, 8 Jan 2014 11:46:53 +0000 (12:46 +0100)]
clean up Object::has(Own)Property

hasProperty is now implemented by calling hasOwnProperty
on the proto chain. In addition, it should be slightly
faster and doesn't use API that returns a Property pointer
anymore.

Change-Id: I6312d83ccfed3f0a1a8ec4c72c436a426d6eab44
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoLookup::lookup should not return a Property pointer
Lars Knoll [Tue, 7 Jan 2014 15:47:44 +0000 (16:47 +0100)]
Lookup::lookup should not return a Property pointer

Change-Id: I5c9858f636c199b9cbe7cb2bffa03db14b6e1ae4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years ago[new compiler] Correct the use of default property
Simon Hausmann [Sun, 19 Jan 2014 13:22:54 +0000 (14:22 +0100)]
[new compiler] Correct the use of default property

When a type declares a new default property, then the old default property
continues to apply to its own bindings.

Change-Id: Iafeec772baa4e1a430b09eed0b348b83984246cd
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix implicit component determination for composite types
Simon Hausmann [Fri, 17 Jan 2014 15:40:30 +0000 (16:40 +0100)]
[new compiler] Fix implicit component determination for composite types

We want to search every object for properties that implicitly define
components, unless the object itself is a Component. That means if there's a
QQmlType and that meta-object is QQmlComponent's or there's no QQmlType because
it's a composite type.

Fixes QtQuickControls parsing.

Change-Id: I3fc7c2aff0c83ceada0c6772a02eff40a22777c9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix duplicate property/signal name detection for group objects
Simon Hausmann [Fri, 17 Jan 2014 14:56:14 +0000 (15:56 +0100)]
[new compiler] Fix duplicate property/signal name detection for group objects

For a rectangle like this:

    color: "blue"
    border.color: "red"

we must not issue a duplicate property error for "color" because they
are in different objects. This patch fixes that by moving the sets for
checking the presence of these into the object itself, so that the qSwap
on _object also transitions to the correct property/signal name set.

Change-Id: I9ac0e5877eb9f60b618b031f99290707de28112d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Add support for QML list models
Simon Hausmann [Wed, 15 Jan 2014 16:29:04 +0000 (17:29 +0100)]
[new compiler] Add support for QML list models

List model definitions make heavy use of custom parsers, which requires AST
access as well as a general port to the new QQmlCustomParser API.

Additional fixes in the custom parser support were needed to pass all tests:

 * Fix support for AcceptsSignalHandlers and AcceptsAttachedProperties
 * Don't call setCustomData unless the compiler generated data earlier

Change-Id: Ic42f8a890391267c94f63d35f055b60fdbf3c83d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix type versioning
Simon Hausmann [Fri, 17 Jan 2014 11:53:14 +0000 (12:53 +0100)]
[new compiler] Fix type versioning

Imported types with a meta object that contains revisioned attributes, need
their property cache created for exactly the imported version. So this is done
ahead of type and populated in the resolved types, similar to the old code path
in qqmlcompiler.cpp.

Change-Id: I65a5d140d8f49cceeeee1162ab2d6376ad9c2e42
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix refcounting leaks with property caches
Simon Hausmann [Fri, 17 Jan 2014 11:16:07 +0000 (12:16 +0100)]
[new compiler] Fix refcounting leaks with property caches

The TypeReference is not copy-safe, as it holds refcounted property cache
pointers. For the new compiler code path, don't copy them but keep pointers to
TypeReference objects around.  Also make sure to ref the root property cache
correctly and avoid the unnecessary addref for the property cache when creating
new vme meta objects (initial refcount is 1).

Change-Id: I0c4b952c8300c2167d926d9c35b8579fd505d596
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix customer parser use with nested objects
Simon Hausmann [Thu, 16 Jan 2014 13:51:33 +0000 (14:51 +0100)]
[new compiler] Fix customer parser use with nested objects

Types with a custom parser attached don't need to continue with validation of
properties in sub-objects.

Change-Id: Ib25f8e037cf651dfb30dd4016f89980612dff4f4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix id mapping in implicitly defined components
Simon Hausmann [Thu, 16 Jan 2014 16:29:40 +0000 (17:29 +0100)]
[new compiler] Fix id mapping in implicitly defined components

When scanning for component roots of explicitly defined components, make sure
to skip synthetized ones. Now samegame runs :)

Change-Id: If64171aefc1105a130a1a50e855af87977d2f3af
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoMerge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Frederik Gladhorn [Sat, 18 Jan 2014 11:26:50 +0000 (12:26 +0100)]
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev

10 years agoNow android has only one platform plugin.
BogDan Vatra [Thu, 16 Jan 2014 10:06:58 +0000 (12:06 +0200)]
Now android has only one platform plugin.

Change-Id: Idd3e0ede63be101a757a4f5f531693e3c7a24af6
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
10 years agoMerge remote-tracking branch 'origin/stable' into dev
Frederik Gladhorn [Fri, 17 Jan 2014 14:22:12 +0000 (15:22 +0100)]
Merge remote-tracking branch 'origin/stable' into dev

Change-Id: Id265682aa7db9be1c0b305ab3207b2c932a25a9f

10 years agoV4: fix range splitting when split is between intervals.
Erik Verbruggen [Fri, 17 Jan 2014 10:45:37 +0000 (11:45 +0100)]
V4: fix range splitting when split is between intervals.

Also added some "white-box" unit tests and sprinkled in a bit of
documentation. The case that went wrong is covered by the test
rangeSplitting_1: before the fix, the new interval would have
two ranges: [66-64],[70-71]. The first range is invalid and should not
be there at all.

Change-Id: If0742f4e6a96d98ea5d696f95126886ba66f92bb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMake sure QQmlVmeProfiler methods can be inlined
Ulf Hermann [Thu, 2 Jan 2014 16:11:32 +0000 (17:11 +0100)]
Make sure QQmlVmeProfiler methods can be inlined

Move the definitions to the header and adapt the documentation.

Task-number: QTBUG-35315
Change-Id: I511a192cfe1e3e09ade035175cb8f3f332022143
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
10 years agoSwitch QML profiler off when deleting QQmlProfilerService
Ulf Hermann [Thu, 2 Jan 2014 14:55:41 +0000 (15:55 +0100)]
Switch QML profiler off when deleting QQmlProfilerService

Like this we don't have to check for QQmlProfilerService::instance
anymore in order to find out if we can use the profiler service. If
instance == 0 then enabled == false. Furthermore if it was thread safe
before it must still be thread safe like this.

Task-number: QTBUG-35315
Change-Id: Ie5737e3586f2431afbf11423ba53fd13dd371feb
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
10 years ago[new compiler] Add support for type and enum resolution for custom parsers
Simon Hausmann [Wed, 15 Jan 2014 15:17:22 +0000 (16:17 +0100)]
[new compiler] Add support for type and enum resolution for custom parsers

This is in preparation for listmodel support, share the code for resolving
types and enums between the old and the new compiler, as all it needs is the
imports.

Change-Id: I4908d71eee50c769108e0e2b68b03496722fa49d
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix error reporting location for custom parsers
Simon Hausmann [Wed, 15 Jan 2014 12:32:42 +0000 (13:32 +0100)]
[new compiler] Fix error reporting location for custom parsers

After the binding of QQmlCompilePass to QQmlTypeCompiler, I forgot to
change the customer parser handling to also report the errors correctly
back to the QQmlTypeCompiler. Instead they were collected locally with an
empty url.

Change-Id: I5ee527a77e27c0339c507f326a3b0f0837353db3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix implicit component definition for default properties
Simon Hausmann [Wed, 15 Jan 2014 11:57:01 +0000 (12:57 +0100)]
[new compiler] Fix implicit component definition for default properties

When trying to determine if an object binding should be a component or not
and we don't have a property name for the binding, then we must check if the
default property happens to be a QQmlComponent.

Change-Id: Ie21fc438b8b2d86caa3991794e6eac688c074440
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Add support for value interceptors / on-assignments
Simon Hausmann [Mon, 30 Sep 2013 15:39:49 +0000 (17:39 +0200)]
[new compiler] Add support for value interceptors / on-assignments

Behavior on x { NumberAnimation { ... } } is implemented by assigning a value
interceptor (Behavior is a sub-class of that) to the x property in a special
way. That requires various things:

* A VME meta-object must be created and installed on the surrounding object, in
  order for the interceptors to work
* On assignments need to be excluded from duplicate property assignment checks
* Behaviours require also finalization callbacks on component creation

Change-Id: I40250b71081a2e315cda3bdb6677fa4b227fa443
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Clean up property cache / meta object builder
Simon Hausmann [Mon, 13 Jan 2014 08:42:55 +0000 (09:42 +0100)]
[new compiler] Clean up property cache / meta object builder

Move the outter loop into the builder class itself, use a vector instead
of a list (we know that it's a fixed size and we only do indexed access)

Change-Id: I933f0496ea47b3bc7c2bebde7f1a14b4f603b4c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Initial support for QQuick state changes
Simon Hausmann [Fri, 10 Jan 2014 13:51:00 +0000 (14:51 +0100)]
[new compiler] Initial support for QQuick state changes

This requires the use of the customer parser together with lazy binding compilation

Change-Id: I45d8a206267d3e0c807771a79645168254be9c95
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Preliminary support for script string properties
Simon Hausmann [Fri, 10 Jan 2014 13:46:33 +0000 (14:46 +0100)]
[new compiler] Preliminary support for script string properties

These should later get resolved at compile time, like enum assignments.

Change-Id: I2f40c8d13330d2a101f79af12fe708f466eef225
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix group property initializers
Simon Hausmann [Fri, 10 Jan 2014 12:34:41 +0000 (13:34 +0100)]
[new compiler] Fix group property initializers

Bindings with an object initializer without a type name must be
group properties, instead of regular object bindings. Fixes

    font {
        pixelSize: 24
    }

versus

    font.pixelSize: 24

Change-Id: I468caa48be13f91f88545ef001ac9aaa46ba5d14
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoMerge remote-tracking branch 'origin/stable' into dev
Simon Hausmann [Fri, 17 Jan 2014 06:11:26 +0000 (07:11 +0100)]
Merge remote-tracking branch 'origin/stable' into dev

Conflicts:
.qmake.conf
src/imports/dialogs/DefaultFileDialog.qml
src/imports/widgets/qquickqfiledialog.cpp

Change-Id: I00de6dd05cb773f01254061d585a82c90b229acd

10 years agoMerge remote-tracking branch 'origin/release' into stable
Simon Hausmann [Thu, 16 Jan 2014 20:52:48 +0000 (21:52 +0100)]
Merge remote-tracking branch 'origin/release' into stable

Change-Id: Id18709cb0a4d85ffdadffa28aef98323367292d4

10 years agoBump MODULE_VERSION to 5.2.2
Sergio Ahumada [Wed, 15 Jan 2014 21:58:28 +0000 (22:58 +0100)]
Bump MODULE_VERSION to 5.2.2

Change-Id: Id20a6043ba142c14cd2b1062181a399e93782179
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
10 years agoRe-enable mac tests
Alan Alpert [Mon, 16 Dec 2013 18:40:04 +0000 (10:40 -0800)]
Re-enable mac tests

Task-number: QTBUG-35344
Change-Id: Ifc4d5420c95a615b35f02ec585c324b2cc93c5e0
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoV4: relieve more memory allocator pressure.
Erik Verbruggen [Thu, 16 Jan 2014 14:39:00 +0000 (15:39 +0100)]
V4: relieve more memory allocator pressure.

For _ZN13BenchmarkDemo11initPhysicsEv from the Octane testsuite, the
total allocated memory drops from 1.5GB to 51MB. Peak memory usage stays
at 29MB.

Again, slow implementations of malloc()/free() will see a performance
improvement.

Change-Id: I21bc2f0d3735de0980fc9b3745906016e2e48a61
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix usage of FileDialog.folder property in QtQuick
Tobias Koenig [Mon, 6 Jan 2014 08:45:37 +0000 (09:45 +0100)]
Fix usage of FileDialog.folder property in QtQuick

The content of the FileDialog.folder property has not been applied
to the native QFileDialog, so it was not possible to pre-select a
folder for the file dialog.

Change-Id: Iaadd6aa71bc37739c16a2e7c5bff2d0050f15f3a
Task-number: QTBUG-35973
Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com>
Reviewed-by: Liang Qi <liang.qi@digia.com>
10 years agoQtQuick.Dialogs FileDialog: don't go astray into qrc:/ on Android
Shawn Rutledge [Mon, 13 Jan 2014 14:16:01 +0000 (15:16 +0100)]
QtQuick.Dialogs FileDialog: don't go astray into qrc:/ on Android

Was due to string->URL conversion when setting FolderListModel.folder.

Task-number: QTBUG-36006
Change-Id: Ia768d8a5473b3d4c22ef9be7c8b3cf28d3956f6f
Reviewed-by: Liang Qi <liang.qi@digia.com>
10 years agoFix failing context->next != 0x1 assertion
Simon Hausmann [Thu, 16 Jan 2014 12:08:37 +0000 (13:08 +0100)]
Fix failing context->next != 0x1 assertion

After commit bf173fe5da381c88343296ca33ef6b06389c6d20 context objects are
always on the GC heap and no more in that special linked list or stack
allocated, so the next pointer became dangling/uninitialized and asserting on
it was bound to fail randomly.

Since we no more allocate contexts on the stack, we can safely remove the
assertion.

Task-number: QTBUG-35917
Change-Id: I104bd129c6c32f46a6302052f563abdf926cb879
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
10 years agoV4 IR: do edge splitting after SSA transformation
Erik Verbruggen [Wed, 15 Jan 2014 09:45:28 +0000 (10:45 +0100)]
V4 IR: do edge splitting after SSA transformation

This reduces the work for the dominator tree/frontier calculations,
because there are less blocks to consider. All blocks inserted by
splitting the critical edges, have (by definition) no effect on the
dominator calculations. However, the immediate dominators for all new
blocks needs to be added, because this information is used by the block
scheduling.

This change reduces memory/time usage during optimization passes,
especially when processing excessively big switch statements.

Change-Id: Ia69882e9dabdddffa1c98b1079012d8d988e1e8f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4: lower memory allocator pressure.
Erik Verbruggen [Thu, 16 Jan 2014 13:55:41 +0000 (14:55 +0100)]
V4: lower memory allocator pressure.

Changes to datastructures and more re-using of locally used temporary
vectors. For the test regress-74474-002.js this lowers the total
allocated memory from 1.98GB to 158MB. Thse peak memory usage stays at
75MB. There is no functional change.

This should give a modest performance improvement which mainly depends
on the speed of malloc()/free().

Change-Id: I1877c1903e59a33ee79ff2b801ef6f2c1cee30a6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoV4 IR: update immediate dominators when purging unreachable basic-blocks
Erik Verbruggen [Wed, 15 Jan 2014 09:46:08 +0000 (10:46 +0100)]
V4 IR: update immediate dominators when purging unreachable basic-blocks

The basic block scheduling uses this information to place loops. When
the immediate dominator information is invalid, the scheduling can be
sub-optimal, or will sometimes forget to schedule some blocks.

Change-Id: Iaeb45f2b757b676310be25a658ceadc07d5722ec
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMake sure the test window has focus
Albert Astals Cid [Thu, 16 Jan 2014 10:55:54 +0000 (11:55 +0100)]
Make sure the test window has focus

Some setups like xvfb-run under Linux do not focus windows
after showing them, this means that any focus based test will
fail since the windows itself is unfocused. This makes sure
the test window will be shown and focused.

Change-Id: I1903b7cdf88b772e1ca15acd4899695b49615712
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoIncrease the timeout for QPacketProtocol tests
Ulf Hermann [Thu, 16 Jan 2014 13:54:33 +0000 (14:54 +0100)]
Increase the timeout for QPacketProtocol tests

Recent failures when testing a completely unrelated one-line commit
(https://codereview.qt-project.org/74584) suggest that the timeout is
actually too small.

Change-Id: I9c3fd0b09c6be2d42f92485c3c223fe88bb8328e
Reviewed-by: Michael Brasser <michael.brasser@live.com>
10 years agoRevert "Support batching of rotated antialiased elements."
Gunnar Sletta [Mon, 13 Jan 2014 07:56:09 +0000 (08:56 +0100)]
Revert "Support batching of rotated antialiased elements."

This patch broke scaled text rendering

This reverts commit 6acaa1c42936f89d74324be9c0cce4873a9a565b.

Change-Id: I1f7a3ba0556f6d59bc1e28946631be2d9fc2b67d
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoV4: remove unnecessary spills and order them correctly.
Erik Verbruggen [Wed, 15 Jan 2014 13:36:37 +0000 (14:36 +0100)]
V4: remove unnecessary spills and order them correctly.

When doing edge resolving, too many spills were generated, and the
dependency tracking of moves was not complete. Now we only insert spills
that are caused by phi-nodes (because any other spill would be generated
at the point a variable was defined). However, there can still be
multiple dependencies between the moves generated by the edge resolving.
Instead of only checking the first dependency, all of them are tracked.

The bug report was a case where an unneccesary spill was generated, that
got tracked, but "suppressed" the other (valid!) dependent move. The
randomness was caused by the hash seeding of QHash.

Task-number: QTBUG-35840

Change-Id: Ifbc3c8fc13de53c46a8b5859721b2497189921a3
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove the two default role names listed in cppmodels documentation.
Mitch Curtis [Wed, 15 Jan 2014 07:54:04 +0000 (08:54 +0100)]
Remove the two default role names listed in cppmodels documentation.

The list is incomplete, and they are now fully documented under
QAbstractItemModel::roleNames(). This saves us maintaining two lists
that can easily get out of sync.

Change-Id: I4895a8ba19a4f48c26b4077e8bf2eba8c4c8407c
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
10 years agoQQuickWindow: Make sure popups receive key events on Mac
Gabriel de Dietrich [Wed, 15 Jan 2014 16:55:48 +0000 (17:55 +0100)]
QQuickWindow: Make sure popups receive key events on Mac

Change-Id: Ifaf96e567e735d9a837eaef798061bf08fc4a752
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoRemove old unused function
Frederik Gladhorn [Fri, 10 Jan 2014 17:18:50 +0000 (18:18 +0100)]
Remove old unused function

Change-Id: If161129a6dd1a5a41191628e0d54b75ab4708632
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
10 years agoMake sure that profiling can only be started if debugging is enabled.
Ulf Hermann [Wed, 15 Jan 2014 11:30:36 +0000 (12:30 +0100)]
Make sure that profiling can only be started if debugging is enabled.

Enabling the profiler doesn't make much sense if there is no debug
service as the messages can't be sent anywhere then. Furthermore, the
profiler instance is only properly initialized if debugging is enabled
and thus enabling profiling without debugging being enabled can cause
problems.

Change-Id: I784a110126d45a9a2bc9d9e14d9a22e2980c3a42
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
10 years agoAdd support for a separate index buffer
Laszlo Agocs [Sun, 5 Jan 2014 19:36:13 +0000 (20:36 +0100)]
Add support for a separate index buffer

The renderer binds same buffer both for vertex and index data.
This is allowed on desktop & ES but is forbidden in WebGL.
Add a compile-time flag to disable this optimization(?) and
force using a separate buffer for the index data.

Change-Id: I57c17c883a55e02513a8e4427efb202cafaaf37e
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoFix some compiler warnings in tests and examples.
Christian Kandeler [Tue, 14 Jan 2014 11:31:39 +0000 (12:31 +0100)]
Fix some compiler warnings in tests and examples.

Change-Id: Ia739c995005635caf6fd0bd4e495ed8567350e83
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
10 years agoDo not crash if /proc is not mounted
Albert Astals Cid [Mon, 13 Jan 2014 10:09:34 +0000 (11:09 +0100)]
Do not crash if /proc is not mounted

When proc is not mounted pthread_getattr_np fails, so default
to 1MB stack in getStackLimit and to exactGC in MemoryManager

Change-Id: Ic7515fd420f2d39a656808d24a3915a657722891
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix nodetest autotest.
Gunnar Sletta [Thu, 9 Jan 2014 08:18:44 +0000 (09:18 +0100)]
Fix nodetest autotest.

GL context was initialized with the wrong surface format resulting
in warnings, and we did not clean up the render context properly.

Change-Id: I19f748ca985a0becf1f7a6caa987f21567029cfd
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Alex Montgomery
10 years agoFix RenderNode autotest on BlackBerry
Fabian Bumberger [Fri, 10 Jan 2014 17:08:17 +0000 (18:08 +0100)]
Fix RenderNode autotest on BlackBerry

On BlackBerry the first window that is created is always shown as fullscreen.
This is a platform restriction and possibly applies to other platforms as well.
The autotest however expects the window to be of a specific size.
As workaround a "container" window is created first in which the QQuickView is placed.

Change-Id: Ib9023cfcb9148c6cafb21872c2821ebcb8fd664f
Reviewed-by: Alan Alpert (Personal) <416365416c@gmail.com>
10 years agoMerge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev
Frederik Gladhorn [Tue, 14 Jan 2014 17:06:27 +0000 (18:06 +0100)]
Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev

10 years agoFix warning about cast from char* to QString
Thiago Macieira [Fri, 10 Jan 2014 06:10:21 +0000 (22:10 -0800)]
Fix warning about cast from char* to QString

Use QStringLiteral.

Change-Id: I201fc44b2a6bf0f7ff3ff1c9ea81ff3b64b2bba9
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years ago[new compiler] Fix assignments to enums from string literal
Simon Hausmann [Fri, 10 Jan 2014 12:08:22 +0000 (13:08 +0100)]
[new compiler] Fix assignments to enums from string literal

This is the quick fix for the tests. Later we'll need a pass that resolves
this and changes the QV4::CompiledData::Binding::Type according to the
resolved value of the property.

Change-Id: I5a799873ae8fb7f716a6af22f7e67927820c2513
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix mix of bindings and signal handlers
Simon Hausmann [Thu, 9 Jan 2014 16:07:36 +0000 (17:07 +0100)]
[new compiler] Fix mix of bindings and signal handlers

When storing a binding, we remove any previous binding. If we store
a signal handler, we look up the same property, but we must not destroy
any existing bindings:

    property int someThing: { ...}
    onSomeThingChanged: { ...}

Change-Id: Ie5afd986ee3d8b4f2efd0aabca331c33a225abfc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix error handling for property names that look like signals
Simon Hausmann [Thu, 9 Jan 2014 15:25:03 +0000 (16:25 +0100)]
[new compiler] Fix error handling for property names that look like signals

The check for the right hand side of a potential signal handler declaration
needs be placed after we determined that we are really assigning to a
signal.

Change-Id: I7f5417dc30ba7365327560e1b16ee9ceaa9bed76
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Fix scope, binding target and property object for bindings in group...
Simon Hausmann [Thu, 9 Jan 2014 15:20:47 +0000 (16:20 +0100)]
[new compiler] Fix scope, binding target and property object for bindings in group properties

Resolve the confusion about _qobject and _qobjectForBindings, use _qobject for
all property related bits and _qobjectForBindings is gone, in favor of
_scopeObject. Usually they are the same, but in group properties for example,
the _scopeObject remains the outter object but the _qobject becomes the
object that's returned by the group property, i.e.

   anchors.fill: parent

For that binding, the scope object is the outter object but the _qobject
is the value of the anchors property.

Then there's binding target, which is revelant for value type properties, where
it remains the outter object. In theory one could nest a value type property in
a regular group object, in which case _scopeObject would be outter most,
_qobject would be the value type wrapper and _bindingTarget would be the group
object.

Change-Id: Ie3135d951910bf40ece192ab6260d7a9e6e9cdd6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoAllow assignment of a QML Locale object to a C++ QLocale property.
Mitch Curtis [Tue, 14 Jan 2014 11:34:35 +0000 (12:34 +0100)]
Allow assignment of a QML Locale object to a C++ QLocale property.

Task-number: QTBUG-36125

Change-Id: I58454db0c47684aed3e95c52a8135fd5fd6bf2f9
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse QSGGeometry::lineWidth() when drawing GL_POINTS
Alex Montgomery [Tue, 7 Jan 2014 01:12:30 +0000 (17:12 -0800)]
Use QSGGeometry::lineWidth() when drawing GL_POINTS

Since glLineWidth doesn't affect the drawing of GL_POINTS, it makes sense
to use the lineWidth member to affect point size when drawing points.

[ChangeLog][QtQuick][QSGGeometry] Changed QSGGeometry::lineWidth
to also affect point size (glPointSize) when drawing GL_POINTS, in
addition to the existing behavior of affecting line width when drawing
GL_LINES, GL_LINE_STRIP, and GL_LINE_LOOP.

Task-number: QTBUG-35772
Change-Id: I0ea73f9261509e8d356f91a063dc90dc0f8980bd
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
10 years agoOn Mac only editable ComboBox should receive tab focus
Frederik Gladhorn [Wed, 8 Jan 2014 15:15:21 +0000 (16:15 +0100)]
On Mac only editable ComboBox should receive tab focus

[ChangeLog][QtQuickControls] Mac: ComboBox will only get tab focus when it is
editable.

Change-Id: Ife04de67b2e3dea77ba878b247ad0b676c879c02
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
10 years agoMake qtdeclarative compile with QT_NO_TRANSLATION
Tasuku Suzuki [Mon, 30 Dec 2013 18:06:02 +0000 (03:06 +0900)]
Make qtdeclarative compile with QT_NO_TRANSLATION

Change-Id: I73efc8c568e2368bc804eacab9e8f9cced8a030b
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
10 years agotst_qquickpathview: Use QCOMPARE instead of QVERIFY.
Friedemann Kleint [Wed, 18 Dec 2013 11:07:38 +0000 (12:07 +0100)]
tst_qquickpathview: Use QCOMPARE instead of QVERIFY.

Attempting to get some diagnostic output for the failues.

Task-number: QTBUG-35705
Change-Id: Iffebae89743c31e88125c0b1e21be172d3373b05
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
10 years agoMerge remote-tracking branch 'origin/stable' into dev
Frederik Gladhorn [Fri, 10 Jan 2014 17:41:43 +0000 (18:41 +0100)]
Merge remote-tracking branch 'origin/stable' into dev

Conflicts:
src/qml/jsruntime/qv4managed_p.h

Change-Id: I5da7ae9c87a539e42292f272d9e2b5faab619c9f

10 years agonot build QQmlSettings when QT_NO_SETTINGS is defined
Tasuku Suzuki [Mon, 30 Dec 2013 16:53:50 +0000 (01:53 +0900)]
not build QQmlSettings when QT_NO_SETTINGS is defined

The current implementation is based on QSettings.

Change-Id: I2e45070dabaf915b1c1b9f4e7c63b6c3e36e48a0
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
10 years ago[new compiler] Cleanups
Simon Hausmann [Tue, 7 Jan 2014 16:04:18 +0000 (17:04 +0100)]
[new compiler] Cleanups

Move all compilation phase related sub-classes (property cache generator,
component and alias resolver, etc.) together into qqmltypecompiler.cpp

Change-Id: I598c801d9434623fc8e6338dec11e4d4ee6d7232
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Add support for implicitly defined components
Simon Hausmann [Tue, 7 Jan 2014 14:35:20 +0000 (15:35 +0100)]
[new compiler] Add support for implicitly defined components

Use-cases like

    itemDelegate: Item { ... }

implicitly define a component without the item-surrounding Component {}, base
on the fact that the property itself is of type QQmlComponent (or derived).

This means we have to synthesize a Component {} object and insert it into
the data structure.

Change-Id: I8992451a5a6732c7fd898eaf83c276dc6a8b7d19
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years ago[new compiler] Cleanups
Simon Hausmann [Tue, 7 Jan 2014 14:59:24 +0000 (15:59 +0100)]
[new compiler] Cleanups

Tie QQmlCompilePass and QQmlTypeCompiler together, so that we can eliminate
the battery of parameters to the individual compiler phases.

Change-Id: If2b6cf8416e6c2253c8f054048d1fd5ae12282b6
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoSupport batching of rotated antialiased elements.
Gunnar Sletta [Wed, 4 Dec 2013 14:44:57 +0000 (15:44 +0100)]
Support batching of rotated antialiased elements.

Change-Id: I0522a23617c897aff01b7b50e0af98553374d792
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoDoc: Fix current QtQuick module version.
Takumi Asaki [Thu, 19 Dec 2013 02:03:38 +0000 (11:03 +0900)]
Doc: Fix current QtQuick module version.

Change-Id: I8056757967ff2693f69b5a7afa11a00ca826ece0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
10 years agoFix bad cast of virtual class to base class via reinterpret_cast
Thiago Macieira [Fri, 3 Jan 2014 22:59:43 +0000 (20:59 -0200)]
Fix bad cast of virtual class to base class via reinterpret_cast

Clang 3.4 found it:
qv4managed_p.h:202:9: error: 'reinterpret_cast' to class 'QQmlDelegateModelGroupChangeArray *' from its base at non-zero offset 'QV4::Managed *' behaves differently from 'static_cast' [-Werror,--Wreinterpret-base-class]

QV4::Managed and QV4::Object are non-virtual classes (they have no
virtual table). I'm not sure if they are (C++11) standard layout, but
they seem to fit the bill. However, QQmlDelegateModelGroupChangeArray
has virtual functions, so the QV4::Managed sub-object in that class does
not start at offset zero. That means reinterpret_cast'ing the base to
the derived class is *wrong*, even if we're just calling a static
function.

In any case, we're static_cast'ing in the next line anyway, so this
can't hurt.

Change-Id: Icc796f7ecf8f41f859ea5fc877f5db5c87799964
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoDoc: QtTest - Fix documentation for TestCase and SignalSpy
Caroline Chao [Wed, 8 Jan 2014 12:55:37 +0000 (13:55 +0100)]
Doc: QtTest - Fix documentation for TestCase and SignalSpy

The property/methods documentation needs to be available in the
components qml file. Thus we now import those components from the
qml files directly instead of using fake header files.

Rename the Qt Quick Test page to Qt Quick Test Qml Types to be
consistent with the other submodules.

Task-number: QTBUG-33587

Change-Id: Ifb1df8e7d15f2e23b4b4268e5df138934e62fc42
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
10 years agoQQmlSettings: if debugging is turned on, show the path where stored
Shawn Rutledge [Thu, 9 Jan 2014 16:00:51 +0000 (17:00 +0100)]
QQmlSettings: if debugging is turned on, show the path where stored

Being able to read the file as stored is useful for debugging.

Change-Id: Ifae8d2e1acc654d24efdbff2d2cb433f0e7d3f13
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
10 years agoRemove redundant copies of enabled flag in QML profiler
Ulf Hermann [Thu, 2 Jan 2014 15:49:32 +0000 (16:49 +0100)]
Remove redundant copies of enabled flag in QML profiler

Task-number: QTBUG-35315
Change-Id: Idd35a330531722cb3d4e0d3e95cb3be6e5697688
Reviewed-by: Michael Brasser <michael.brasser@live.com>
10 years agoFix some typos in documentation.
Jeff Tranter [Tue, 7 Jan 2014 15:35:37 +0000 (10:35 -0500)]
Fix some typos in documentation.

Fix some spelling and grammatical errors in comments that show up in Qt documentation. No changes to code.

Change-Id: I2d91518900c9b60ee8e8a8f549c88a1d50632b3d
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
10 years agoUpdated the code to resize the text box on window resize
Venu [Thu, 9 Jan 2014 11:38:50 +0000 (12:38 +0100)]
Updated the code to resize the text box on window resize

Without the QQuickView resizeMode set to
QQuickView::SizeRootObjectToView the text box control
appears in the middle and blocks the squircle effect.

Task-number: QTBUG-35584
Change-Id: Ib8fc40f087a44d05062e900c33b9de5a620d1cc5
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
10 years ago[new compiler] Move component determination and alias resolving
Simon Hausmann [Thu, 12 Dec 2013 15:23:14 +0000 (16:23 +0100)]
[new compiler] Move component determination and alias resolving

Move the code before the JS code generation, as we are going to need the
component boundaries for the correct scoping. This requires the component and
alias resolver to operate on the pre-compiled-data data structures.

Change-Id: I8d2e697d8a05e5a4914db93e785704f6b2434a2e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoClassify as Q_PRIMITIVE_TYPE a few private types.
Sérgio Martins [Wed, 8 Jan 2014 15:20:05 +0000 (15:20 +0000)]
Classify as Q_PRIMITIVE_TYPE a few private types.

Found by clang plugin matching the criteria:
- is pod / movable
- sizeof(T) <= sizeof(void*)
- used by QList

The only case that can't be fixed is:
QList<TypeCache::Iterator> in qqmltypeloader.cpp:1924

because Iterator is declared in qhash.h:349

Maybe use a QVector ...

Change-Id: I9007cf43b0cf29ff39f3d2c95fb60d766c976ce7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoClassify struct Use with Q_MOVABLE_TYPE.
Sérgio Martins [Tue, 7 Jan 2014 19:38:50 +0000 (19:38 +0000)]
Classify struct Use with Q_MOVABLE_TYPE.

It's movable, private, !isLarge and used by QLists in this code.

Change-Id: I08c6e7e65625aba1bc798a3911a20d6d2ddc73fb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoCleanup: change signature of Object::insertMember()
Lars Knoll [Tue, 7 Jan 2014 15:10:00 +0000 (16:10 +0100)]
Cleanup: change signature of Object::insertMember()

Methods returning a Property pointer have to be removed, so that
we can move over to store member data requiring only one value for
the common case of data properties.

This will in the long term reduce memory consumption on 64 bit
systems quite a bit.

Change-Id: I78de3794ec7b3bc5db13aa57275d3f08fa9d470a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoSmaller code cleanup
Lars Knoll [Tue, 7 Jan 2014 14:36:28 +0000 (15:36 +0100)]
Smaller code cleanup

Move the check for isEmpty() into ArrayData::getProperty.

Change-Id: I1791ced706afadbb2f45883cb1b3915f40500b71
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRework array handling for JS objects
Lars Knoll [Mon, 16 Dec 2013 08:16:57 +0000 (09:16 +0100)]
Rework array handling for JS objects

Split up ArrayData into two classes, one for regular
arrays, one for sparse arrays and cleanly separate
the two cases. Only create array data on demand.

Change-Id: I9ca8d0b53592174f213ba0f20caf93e77dba690a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFixes for argument objects
Lars Knoll [Fri, 3 Jan 2014 10:58:03 +0000 (11:58 +0100)]
Fixes for argument objects

Fix a possible infinite recursion, and a corner
case where we wouldn't set the correct data when
writing to the argument object

Change-Id: Ia64b9f62e9b881e24d74e23d96d5eb27805a126f
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAdd Object::hasOwnProperty()
Lars Knoll [Sat, 4 Jan 2014 21:32:13 +0000 (22:32 +0100)]
Add Object::hasOwnProperty()

This allows us to remove more getOwnProperty calls. This will
be required later on to extend our array handling.

Change-Id: I7b7f5887990cd443accf51891644fdfbb849cf35
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix Flickable generated release event with pressDelay.
Martin Jones [Wed, 8 Jan 2014 07:04:35 +0000 (17:04 +1000)]
Fix Flickable generated release event with pressDelay.

Map mouse position to grabber when forwarding release event due to
release before pressDelay timeout.

Task-number: QTBUG-34570
Change-Id: I7214077c9ac95f77407cf66f9dad52f577eccd79
Reviewed-by: Matthew Vogt <matthew.vogt@qinetic.com.au>
10 years agoFix broken build with Clang < 3.4 after 60aed669345be33b916c445565
Thiago Macieira [Wed, 8 Jan 2014 15:11:41 +0000 (07:11 -0800)]
Fix broken build with Clang < 3.4 after 60aed669345be33b916c445565

The -Wunused-const-variable option was added in Clang 3.4 and is not yet
supported on Apple's Clang. This test needs to be extended with the
Apple Clang version that supports the option.

Change-Id: Ief6ece91f1c0200c3359e74dafca4b893fcde7ca
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>