platform/upstream/qtdeclarative.git
10 years agoChange the object allocation scheme
Simon Hausmann [Fri, 13 Jun 2014 12:30:03 +0000 (14:30 +0200)]
Change the object allocation scheme

Instead of allocating the data directly, centralize the object and its ::Data
allocation in one place in the memory manager. This is in preparation for
additional pointer indirection later.

Change-Id: I7880e1e7354b3258b6a8965be378cd09c9467d25
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoConvert Execution contexts to new constructor syntax
Lars Knoll [Fri, 9 May 2014 14:50:17 +0000 (16:50 +0200)]
Convert Execution contexts to new constructor syntax

Change-Id: I4bc6a61b7a96139353e20871ff7ff007822c64c3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert the last Managed types to the new constructor syntax
Lars Knoll [Fri, 9 May 2014 13:23:18 +0000 (15:23 +0200)]
Convert the last Managed types to the new constructor syntax

Change-Id: I11701c586d4715c08feba4650e12904c3fa7ca27
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert String to new constructor syntax
Lars Knoll [Fri, 9 May 2014 13:06:29 +0000 (15:06 +0200)]
Convert String to new constructor syntax

Change-Id: I07f7667d3d72a7d72e6717d194de8d7b15435777
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert more objects to the new constructor scheme
Lars Knoll [Fri, 9 May 2014 12:32:59 +0000 (14:32 +0200)]
Convert more objects to the new constructor scheme

Change-Id: I31b2a1ba4a93f0d4bde68eeb94f13e7224c0cd7b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert most simple objects to the new constructor scheme
Lars Knoll [Fri, 9 May 2014 12:14:02 +0000 (14:14 +0200)]
Convert most simple objects to the new constructor scheme

Change-Id: I90042037bc0555771bd98233977c7d2b735bb718
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert remaining FunctionObject's to new constructor scheme
Lars Knoll [Fri, 9 May 2014 10:15:23 +0000 (12:15 +0200)]
Convert remaining FunctionObject's to new constructor scheme

Change-Id: I440d5b128d0ee28566ebfa82c2505a4bd97bba6b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert FunctionObject derived classes to new construction scheme
Lars Knoll [Fri, 9 May 2014 09:35:47 +0000 (11:35 +0200)]
Convert FunctionObject derived classes to new construction scheme

Change-Id: I0d43a79ed531a9d651bd00866d73113c05d95a09
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert construtors for QObjectWrapper
Lars Knoll [Fri, 9 May 2014 08:14:25 +0000 (10:14 +0200)]
Convert construtors for QObjectWrapper

Change-Id: Ie35966670b8fdc0d924f05d77e03ad9ae0d5b4c2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert regexps
Lars Knoll [Thu, 8 May 2014 20:27:23 +0000 (22:27 +0200)]
Convert regexps

Change-Id: I5b62a265a7ce363a16b1e14ae93cadbb1ab0cb5b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert context and list wrapper
Lars Knoll [Thu, 8 May 2014 19:45:11 +0000 (21:45 +0200)]
Convert context and list wrapper

Change-Id: Ida3ac10092e1fae53f57e2e664f58c6138a17a99
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoNew construction scheme for the binding wrapper
Lars Knoll [Thu, 8 May 2014 19:29:56 +0000 (21:29 +0200)]
New construction scheme for the binding wrapper

Change-Id: Ic248aef22e1222e84dfb9b8af0413cf750beb576
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert TypeWrapper and ValueTypeWrapper
Lars Knoll [Thu, 8 May 2014 18:49:23 +0000 (20:49 +0200)]
Convert TypeWrapper and ValueTypeWrapper

Change-Id: Ib1debebda1cc6dbfaf9c6dca40cde72800a2769b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConstruct xhr objects the new way
Lars Knoll [Thu, 8 May 2014 18:33:16 +0000 (20:33 +0200)]
Construct xhr objects the new way

Change-Id: I52085f9b807c6d796ba8ed06d9846cde17e068b6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove unused method
Lars Knoll [Thu, 8 May 2014 18:12:09 +0000 (20:12 +0200)]
Remove unused method

Change-Id: I3830de8c4f01cc7340ab37673024ceea93585a9e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert constructors for builtin functions
Lars Knoll [Thu, 8 May 2014 18:11:08 +0000 (20:11 +0200)]
Convert constructors for builtin functions

Change-Id: I9db595e5d6ee20a291252566a38ac3bdfff900f6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix constructors for the delegate model
Lars Knoll [Thu, 8 May 2014 15:01:16 +0000 (17:01 +0200)]
Fix constructors for the delegate model

Change-Id: I6c4d70666fdc331e216511ed089fb4412ed3c608
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert delegate model and indexed builtin function
Lars Knoll [Thu, 8 May 2014 13:32:31 +0000 (15:32 +0200)]
Convert delegate model and indexed builtin function

Change-Id: Ic7d50aa472d6a1bafadb6641f88b5f89a9b893ad
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert QQuickContext2D to new construction scheme
Lars Knoll [Thu, 8 May 2014 13:12:47 +0000 (15:12 +0200)]
Convert QQuickContext2D to new construction scheme

Change-Id: I216a7a5559285bbabfa544846f545466ccf6a2ac
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoStart implement new Object creation pattern
Lars Knoll [Thu, 8 May 2014 12:35:30 +0000 (14:35 +0200)]
Start implement new Object creation pattern

Create objects through a static create() method that returns a pointer
to the objects Data. This will later on simplify breaking the
direct connection between Object and Object::Data.

Change-Id: Id8daa3c766429bc36f432868e1957846147c96b6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoGet rid of CallDataRef
Lars Knoll [Thu, 8 May 2014 06:52:14 +0000 (08:52 +0200)]
Get rid of CallDataRef

The class didn't really add any value.

Change-Id: Ibd63c9b9b1fa3be6bfe8a70ca7fd4d6bf0c0019c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoGet rid of ManagedRef
Lars Knoll [Thu, 8 May 2014 06:29:53 +0000 (08:29 +0200)]
Get rid of ManagedRef

Change-Id: I6883fc5d8c5a13f1e61966c9f6e7bf0bedbfbc8a
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoGet rid of all uses of ObjectRef
Lars Knoll [Wed, 7 May 2014 14:14:08 +0000 (16:14 +0200)]
Get rid of all uses of ObjectRef

Change-Id: I705e2362dcda542f56826dadec6b0a6f15848788
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove the less often used Ref classes
Lars Knoll [Wed, 7 May 2014 13:36:38 +0000 (15:36 +0200)]
Remove the less often used Ref classes

Change-Id: I9ee531c903317a0f324671d98af1f967b684915c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoGet rid of StringRef
Lars Knoll [Wed, 7 May 2014 11:33:24 +0000 (13:33 +0200)]
Get rid of StringRef

Remove the Ref classes, as they won't be required
anymore once Managed and Managed::Data are separated.

Change-Id: Ic6bec2d5b4ecf2595ce129dbb45bbf6a385138a5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRename V4_MANAGED_NEW back to V4_MANAGED
Lars Knoll [Tue, 6 May 2014 12:34:28 +0000 (14:34 +0200)]
Rename V4_MANAGED_NEW back to V4_MANAGED

Change-Id: I3d68fdf38bb2d42f70cbb1297a88eeb8d9316911
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert specialized ExecutionContext's to new data layout
Lars Knoll [Tue, 6 May 2014 12:29:53 +0000 (14:29 +0200)]
Convert specialized ExecutionContext's to new data layout

Change-Id: Ie3aad65e4a10aaa259ae9513f0fcff79dc7e6a39
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix compiler warning
Lars Knoll [Tue, 6 May 2014 12:29:39 +0000 (14:29 +0200)]
Fix compiler warning

Change-Id: Ib1d83a3d14aa0ef3f62b8ec26ff5b8571cdb485c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert ExecutionContext to new storage scheme
Lars Knoll [Tue, 6 May 2014 07:23:59 +0000 (09:23 +0200)]
Convert ExecutionContext to new storage scheme

Change-Id: I9fcc13da5360f37cef3149b114ed9263b9b74281
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert QV4RegExp to new storage scheme
Lars Knoll [Tue, 6 May 2014 06:46:56 +0000 (08:46 +0200)]
Convert QV4RegExp to new storage scheme

Change-Id: Ic752b880ce3dfcb59f807794f0f54fb8ed0e61bf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove MemberData over to new storage layout
Lars Knoll [Tue, 6 May 2014 06:44:30 +0000 (08:44 +0200)]
Move MemberData over to new storage layout

Change-Id: I971b614d471e49d1be2e9474c985cb93ed7e2117
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRename Managed::managedData() to d() to be consistent
Lars Knoll [Wed, 30 Apr 2014 18:55:41 +0000 (20:55 +0200)]
Rename Managed::managedData() to d() to be consistent

No need to differentiate in the name anymore, as the data
structures all inherit from each other now.

Change-Id: Ia41f50ce4e521f9626d874311ceb57e0e194888b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRename V4_OBJECT_NEW back to V4_OBJECT
Lars Knoll [Wed, 30 Apr 2014 18:50:42 +0000 (20:50 +0200)]
Rename V4_OBJECT_NEW back to V4_OBJECT

The _NEW variant was there only temporarily to aid converting
to the new data layout.

Change-Id: I1d126ee0999c8f0a49f5a08c2e8c090497dd6dd5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert sqldatabase to new data layout
Lars Knoll [Wed, 30 Apr 2014 18:46:36 +0000 (20:46 +0200)]
Convert sqldatabase to new data layout

Change-Id: I019d4b02ef4c623cd5cef24a4f46360f1b9b3174
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert QQuickParticleData to new data layout
Lars Knoll [Wed, 30 Apr 2014 18:42:38 +0000 (20:42 +0200)]
Convert QQuickParticleData to new data layout

Change-Id: I6f946272f285cca18e2d08cd69c1bdd0c93faa25
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert QQuickRootItemMarker to new data layout
Lars Knoll [Wed, 30 Apr 2014 18:39:46 +0000 (20:39 +0200)]
Convert QQuickRootItemMarker to new data layout

Change-Id: Id24c561bc04a1dc131492053acec2aeb4041680b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert context2d to new data layout
Lars Knoll [Wed, 30 Apr 2014 18:38:02 +0000 (20:38 +0200)]
Convert context2d to new data layout

Change-Id: If8482862ffa3a7e7b42754ace576d51fb7687315
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix QQmlDelegateModelChangeArray
Lars Knoll [Wed, 30 Apr 2014 18:29:39 +0000 (20:29 +0200)]
Fix QQmlDelegateModelChangeArray

The class had a vtable, clashing with assumptions about Managed
objects. The derived classes where actually only cosmetic sugar
on top of the basic change class. Clean this up and unify the
functionality in the base class.

In addition adjust the class to the new data layout.

Change-Id: I8677f6c71465381f7ebdf82eb6025fda6d137ec3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert xmlhttprequest to new data layout
Lars Knoll [Wed, 30 Apr 2014 18:11:03 +0000 (20:11 +0200)]
Convert xmlhttprequest to new data layout

Change-Id: Ia5d9ca1f3ed35290eef82cf1f83b9f0f094092be
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert qqmlbuiltinfunctions to the new storage layout
Lars Knoll [Wed, 30 Apr 2014 18:02:14 +0000 (20:02 +0200)]
Convert qqmlbuiltinfunctions to the new storage layout

Change-Id: Idb075e97a5f62bbfe8086155d13a01d1dbc99c08
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert QQmlValueTypeWrapper to the new storage scheme
Lars Knoll [Wed, 30 Apr 2014 16:49:40 +0000 (18:49 +0200)]
Convert QQmlValueTypeWrapper to the new storage scheme

Change-Id: Ibbba8652e2d3db8569f5fa69015c6e13fa2ae4c3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert type wrapper to new data layout
Lars Knoll [Tue, 29 Apr 2014 14:59:16 +0000 (16:59 +0200)]
Convert type wrapper to new data layout

Change-Id: Ie569c4419addf31fc0297bbc4acdf08269a3e80e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert qml locale object to new data layout
Lars Knoll [Tue, 29 Apr 2014 14:56:17 +0000 (16:56 +0200)]
Convert qml locale object to new data layout

Change-Id: I1c02498102d89be1127fb6bbf0b38e21c48bed8b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert list wrapper to new storage layout
Lars Knoll [Tue, 29 Apr 2014 14:54:07 +0000 (16:54 +0200)]
Convert list wrapper to new storage layout

Change-Id: Id360880d26444d84462e16e7401945d1160b4281
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert the context wrapper to the new storage layout
Lars Knoll [Tue, 29 Apr 2014 14:51:54 +0000 (16:51 +0200)]
Convert the context wrapper to the new storage layout

Change-Id: Ie6263076e003af031e3faa9e5ca7b1f57140f347
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove VariantObject over to new storage layout
Lars Knoll [Tue, 29 Apr 2014 14:46:12 +0000 (16:46 +0200)]
Move VariantObject over to new storage layout

Change-Id: I96a4ce5d3a3e4fdd29ba0aac1bd3361588457580
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert the incubator object to new storage layout
Lars Knoll [Tue, 29 Apr 2014 09:37:34 +0000 (11:37 +0200)]
Convert the incubator object to new storage layout

Change-Id: Ib4b3168349520ea872046cd90e5eedf48945b467
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert StringObject to new storage layout
Lars Knoll [Tue, 29 Apr 2014 09:35:06 +0000 (11:35 +0200)]
Convert StringObject to new storage layout

Change-Id: I08251049fed92306e1acfd8926ffad270d2e3ca7
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert String to the new storage layout
Lars Knoll [Tue, 29 Apr 2014 09:32:19 +0000 (11:32 +0200)]
Convert String to the new storage layout

Change-Id: Ifa9aac63fdb270fb449f11832a1792caeb6c6724
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert SequenceObject to new storage layout
Lars Knoll [Tue, 29 Apr 2014 09:28:40 +0000 (11:28 +0200)]
Convert SequenceObject to new storage layout

Change-Id: I5b9c4e765eb2b1c5de59e1991b94b7179660d153
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert the QML Binding wrapper to new data storage
Lars Knoll [Tue, 29 Apr 2014 09:20:12 +0000 (11:20 +0200)]
Convert the QML Binding wrapper to new data storage

Change-Id: I715184fe339238a7881a4c64af8c976b81362724
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert QObjectWrapper to new storage structure
Lars Knoll [Tue, 29 Apr 2014 09:17:04 +0000 (11:17 +0200)]
Convert QObjectWrapper to new storage structure

Change-Id: I8b935c579e76519145e1a89a5d441881d7491488
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert ObjectIterator to new storage scheme
Lars Knoll [Tue, 29 Apr 2014 09:10:35 +0000 (11:10 +0200)]
Convert ObjectIterator to new storage scheme

Change-Id: I35631089e6791349ade08c6ed063f1e8ab1bdaea
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert objects without own data
Lars Knoll [Tue, 29 Apr 2014 09:06:08 +0000 (11:06 +0200)]
Convert objects without own data

Change-Id: I790ec9e42e680842a6b9722e67981314fdfa3a2c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert ErrorObject to new storage scheme
Lars Knoll [Tue, 29 Apr 2014 09:02:35 +0000 (11:02 +0200)]
Convert ErrorObject to new storage scheme

Change-Id: I356a9947b87a5cda4eda738d3b6d5d51ee9a98f2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert DateObject over to new storage scheme
Lars Knoll [Tue, 29 Apr 2014 08:57:23 +0000 (10:57 +0200)]
Convert DateObject over to new storage scheme

Change-Id: I34b391a79ef80ab09e892b9a00897b90b31802ef
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert ArrayObject over to the new storage scheme
Lars Knoll [Tue, 29 Apr 2014 08:55:20 +0000 (10:55 +0200)]
Convert ArrayObject over to the new storage scheme

Change-Id: Ib453d682902ccc751fc8fadf2ef9e21c0c234f69
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert ArgumentsObject over to the new storage scheme
Lars Knoll [Tue, 29 Apr 2014 08:53:47 +0000 (10:53 +0200)]
Convert ArgumentsObject over to the new storage scheme

Change-Id: I087e51cef255c025dfabe416ba459cc51a889153
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert RegexpObject to new storage scheme
Lars Knoll [Tue, 29 Apr 2014 08:49:54 +0000 (10:49 +0200)]
Convert RegexpObject to new storage scheme

Change-Id: I7dbaa52d3898bbe44b5a865ded6361bcc7ec2acf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert FunctionObject to new storage scheme
Lars Knoll [Tue, 29 Apr 2014 08:48:39 +0000 (10:48 +0200)]
Convert FunctionObject to new storage scheme

Change-Id: Ida213b4684c4d7c4c64e75999cbc87987d9894c8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert Boolean and NumberObject to the new Data scheme
Lars Knoll [Tue, 29 Apr 2014 08:40:56 +0000 (10:40 +0200)]
Convert Boolean and NumberObject to the new Data scheme

Change-Id: I418103fdca625692d4aa33a1466df0083b063bcb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFirst step unifying data structures
Lars Knoll [Thu, 10 Apr 2014 16:25:45 +0000 (18:25 +0200)]
First step unifying data structures

Make Object::Data inherit from Managed::Data. To keep this
working in the current allocation scheme, we need a dummy
ObjectData in Object for now.

Change-Id: I39036c0bf0431f1c2cf32dadc17a3742ff8d6831
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove ArrayData over to new data layout
Lars Knoll [Thu, 10 Apr 2014 15:53:00 +0000 (17:53 +0200)]
Move ArrayData over to new data layout

Change-Id: Ic51f37bea030b196f0fa35ab21e618447edaa25d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert ArgumentsObject to new data layout
Lars Knoll [Thu, 10 Apr 2014 15:17:29 +0000 (17:17 +0200)]
Convert ArgumentsObject to new data layout

Change-Id: I568ccacb065fff0257a193087eb0cafaeba2d5e0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert ObjectIterator to new data layout
Lars Knoll [Thu, 10 Apr 2014 15:17:14 +0000 (17:17 +0200)]
Convert ObjectIterator to new data layout

Change-Id: Icda43ec9c1e324afebcf632a5fdcc40d855b193d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert RegExp and RegExpObject to new data layout
Lars Knoll [Sun, 6 Apr 2014 10:51:56 +0000 (12:51 +0200)]
Convert RegExp and RegExpObject to new data layout

Change-Id: I0c2bbab4b158069d5c1648edc38f7c5e38ee67ee
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert the remaining classes in functionobject.h
Lars Knoll [Sat, 5 Apr 2014 22:36:23 +0000 (00:36 +0200)]
Convert the remaining classes in functionobject.h

Change-Id: I7dbc56ca3952772b99681f95f50129204f9d6c7c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove data of FunctionObject into an inner struct
Lars Knoll [Sat, 5 Apr 2014 22:29:53 +0000 (00:29 +0200)]
Move data of FunctionObject into an inner struct

Change-Id: Ic00b1761565f9f8881b665a3fecca723239e2279
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoConvert Boolean, Number and DateObject
Lars Knoll [Sat, 5 Apr 2014 19:03:37 +0000 (21:03 +0200)]
Convert Boolean, Number and DateObject

Change-Id: I8815578422fe1af87eb5f02899f35131fea70b76
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove object data into internal structure
Lars Knoll [Sat, 5 Apr 2014 18:47:36 +0000 (20:47 +0200)]
Move object data into internal structure

Change-Id: I1fcccd535ed356e736468337bd450270cd290044
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove string data into subclass
Lars Knoll [Sat, 5 Apr 2014 18:23:43 +0000 (20:23 +0200)]
Move string data into subclass

Change-Id: I95dcdda8c68e2a5c36244798c8c10dcfdd69d2c2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoMove Managed data into it's own subclass
Lars Knoll [Sat, 5 Apr 2014 18:23:20 +0000 (20:23 +0200)]
Move Managed data into it's own subclass

This prepares for moving over to a d pointer scheme,
where Managed subclasses don't hold any data directly. This
is required to be able to move over to a modern GC.

Change-Id: I3f59633ac07a7da461bd2d4f0f9f3a8e3b0baf02
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoGet rid of different macros for vtable specializations
Lars Knoll [Fri, 4 Apr 2014 10:22:00 +0000 (12:22 +0200)]
Get rid of different macros for vtable specializations

Detect existence of a a vtable entry at compile time.

Change-Id: Ieed5d34b063184bc4435b22c6685ac0e3fabf493
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoUse Members for storing the bound arguments in BoundFunction
Lars Knoll [Thu, 3 Apr 2014 11:08:25 +0000 (13:08 +0200)]
Use Members for storing the bound arguments in BoundFunction

Cleans up the code, and allows us to remove the destructor
for bound function objects.

Change-Id: Id32ac69171f7975ec7679d07d25c0eb6b4ca6fb5
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoAvoid calling destroy() on most objects
Lars Knoll [Thu, 3 Apr 2014 11:00:49 +0000 (13:00 +0200)]
Avoid calling destroy() on most objects

The method is now optional, and we can simply avoid
calling it if all members an object has are themselves
garbage collected.

Change-Id: If560fce051908bcc10409ead1a7d8a5bd5fa71d2
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoFix Scoped<T> constructors/assignment operators that take a T*
Simon Hausmann [Fri, 13 Jun 2014 13:11:14 +0000 (15:11 +0200)]
Fix Scoped<T> constructors/assignment operators that take a T*

When assigning a null T*, we would not always set m correctly to zero but to
undefinedValue() instead.

Change-Id: Ia2a439f4a9946664d9835230869161a8499b1659
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoRemove XFAILs from tst_QQuickText
Eskil Abrahamsen Blomfeldt [Mon, 21 Jul 2014 14:06:57 +0000 (16:06 +0200)]
Remove XFAILs from tst_QQuickText

The bug for these has been fixed.

Task-number: QTBUG-39961
Change-Id: I306dff766f048faf527a18f21b69996641fd8b79
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
10 years agoDon't allow a filtering item to block other filtering items.
Andrew den Exter [Fri, 7 Mar 2014 07:54:20 +0000 (17:54 +1000)]
Don't allow a filtering item to block other filtering items.

With delayed press it's possible for a filtering item to not accept a press
on the first go around but to later steal mouse grab and accept future events.
This means outer items  which also filter will have received the mouse press,
but don't receive release events leading to phantom long presses or inadvertent
drags.

Task-number: QTBUG-37316
Change-Id: I2ff18df2a019f8d3a5e81a0adc2c5b5994799862
Reviewed-by: Michael Brasser <michael.brasser@live.com>
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
10 years agoqml: Make ownership of CompiledUnit more clear
Holger Hans Peter Freyther [Sun, 20 Jul 2014 14:42:59 +0000 (16:42 +0200)]
qml: Make ownership of CompiledUnit more clear

The coverity scan utility didn't understand the code flow and assumed
the compiledData would be leaked. Use a QScopedPointer and have the
::backendCompileStep() forward the ownership. From what I see the code
has not leaked memory.

Fixes: CID 10605, CID 10607

Change-Id: I7759f681871bbe12e2aa320a5f39c47c70f4e4e0
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoqml: Fix potential memory leak in the file selector
Holger Hans Peter Freyther [Sun, 20 Jul 2014 14:46:28 +0000 (16:46 +0200)]
qml: Fix potential memory leak in the file selector

The myInstance doesn't seem to be part of a QObject parent/child
relationship and Coverity complained about it. Use a QScopedPointer
to make sure the data will be deleted.

Fixes: CID 10606

Change-Id: I30848ab4d1e621d82281aaa7d6f84e0c2cce4084
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agov4: Delay creating the ScopedValue/ScopedProperty in objectLiteral
Holger Hans Peter Freyther [Sun, 15 Jun 2014 06:12:17 +0000 (08:12 +0200)]
v4: Delay creating the ScopedValue/ScopedProperty in objectLiteral

Creating a ScopedValue/ScopedProperty is not free. It will use the
ExecutionEngine directly to reserve memory from the JS Stack. In
tests/manual/v4/v8-bench.js and bench-allocate-nonretained.js a lot
of objects are created and the arrayValueCount and the
arrayGetterSetterCount are 0. We can delay the creation for a small
gain.

When generating the code we already know the various sizes and
could already call specialized versions of the creation code. The
gain is not so clear though.

Change-Id: Ic99b241f5506457e57611ad4eba143c56be1f657
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agov4: Remove dead code ScriptFunction constructor
Holger Hans Peter Freyther [Sun, 15 Jun 2014 06:05:03 +0000 (08:05 +0200)]
v4: Remove dead code ScriptFunction constructor

Creating a Scope/ScopedValue will immediately access ExecutionEngine
of the ExecutionContext so the null check is not needed here. Move
the v4 variable into the scope that is using it.

Change-Id: I9189ee9d1a63997119e49c12182dffefadc916f1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agov4: Manually inline the access to the execution engine
Holger Hans Peter Freyther [Fri, 13 Jun 2014 18:51:00 +0000 (20:51 +0200)]
v4: Manually inline the access to the execution engine

Executing an allocation heavy testcase of JavaScriptCore on my
i7 Sandy Bridge notebook 6.85% is spent inside the ::engine()
call as gcc 4.8.2 of Debian didn't inline the call. Inline the
call sites by hand. I removed the protected ::engine() as it is
now unused.

$ time qmljs JavaScriptCore/tests/perf/bench-allocate-nonretained.js
before (best run of three)
real 0m2.234s
user 0m2.228s
sys 0m0.008s

after (worse run of three)
real 0m2.097s
user 0m2.088s
sys 0m0.008s

Change-Id: I20b73b3b3dac630eb1d5e7d66bcb50c839630567
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
10 years agoRemove QWidget include from QQmlProperty test.
Andrew den Exter [Thu, 17 Jul 2014 07:10:24 +0000 (17:10 +1000)]
Remove QWidget include from QQmlProperty test.

Change-Id: I1a23816b65273c920b319836f015f6746aa3ad06
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoAdd QQuickFontMetrics.
Mitch Curtis [Thu, 10 Jul 2014 15:16:09 +0000 (17:16 +0200)]
Add QQuickFontMetrics.

This will be a private C++ type that is exposed to QtQuick 2.4 as
FontMetrics.

[ChangeLog][QtQuick] Added QQuickFontMetrics, which provides a subset
of QFontMetricsF's API.

Change-Id: Iac31e5a555bd8f1dc0904b8de0408e5f1a402b25
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
10 years agoAdd containsPress property to MouseArea
Martin Jones [Fri, 11 Jul 2014 04:10:49 +0000 (14:10 +1000)]
Add containsPress property to MouseArea

It is very common to use pressed and containsMouse properties
together to highlight a pressed item, e.g.

    property bool highlighted: pressed && containsMouse

The containsPress property allows simplification and optimization of
user code.

[ChangeLog][QtQuick] Add containsPress property to MouseArea

Task-number: QTBUG-40130
Change-Id: Ie286d431154eb37a99e57e4cf881d68d7cbbe31d
Reviewed-by: Martin Jones <martin.jones@jollamobile.com>
10 years agoMerge remote-tracking branch 'origin/5.3' into dev
Frederik Gladhorn [Thu, 10 Jul 2014 08:12:12 +0000 (10:12 +0200)]
Merge remote-tracking branch 'origin/5.3' into dev

Change-Id: Iba61035910c46627e5e1c3824757da7b3d573657

10 years agoDocs: fix "classname" indentation in the qmldir specs
J-P Nurmi [Wed, 9 Jul 2014 11:22:30 +0000 (13:22 +0200)]
Docs: fix "classname" indentation in the qmldir specs

Change-Id: Idaaaaa77654c2cd3abb56d0bfd3ed7bac7281632
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
10 years agoFix role for generic Accessible items
Frederik Gladhorn [Wed, 9 Jul 2014 08:53:06 +0000 (10:53 +0200)]
Fix role for generic Accessible items

Currently QQuickItem specifies Pane as default role which at least on
linux leads to big confusion. Instead use QAccessible::Client which is
in line with QWidget.

Change-Id: I06b287843a0bf1546f16e67c53ea5d2321ba214b
Task-number: QTBUG-40136
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Caroline Chao <caroline.chao@digia.com>
10 years agoChange default to QQuickWidget in the comparison example
Laszlo Agocs [Tue, 8 Jul 2014 15:53:11 +0000 (17:53 +0200)]
Change default to QQuickWidget in the comparison example

This way the example will run on embedded devices (eglfs)out of the
box and will only abort when switching to QQuickView.

Change-Id: I07855ac1a9d112f868adf6fcab8db888ba0888ec
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
10 years agoCall glBindTexture() via QOpenGLFunctions in qsg_safeguard_texture().
Friedemann Kleint [Mon, 7 Jul 2014 14:57:20 +0000 (16:57 +0200)]
Call glBindTexture() via QOpenGLFunctions in  qsg_safeguard_texture().

Fix linking for dynamic OpenGL builds.

Change-Id: I82e6597d2cb9a74707e3f1e9fce245cce1a5d72b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
10 years agoCalqlatr demo: Remove unused files
Niels Weber [Mon, 7 Jul 2014 10:19:25 +0000 (12:19 +0200)]
Calqlatr demo: Remove unused files

There were a few images etc that were never used. Remove them.

Change-Id: I606241903cf098cb495aa06ac4c595fb175cd9fc
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
10 years agoMake sure JIT architectures lists are in sync
Dmitry Shachnev [Thu, 12 Jun 2014 15:43:56 +0000 (19:43 +0400)]
Make sure JIT architectures lists are in sync

We have two lists: in qv4global_p.h and qv4targetplatform_p.h. This commit blacklists
OSes on x86 and x86_64 where JIT is not supported, improves support for FreeBSD and
adds cross-references between these two files.

Change-Id: Id3715a2ab717186e510a54e5a548dfa22120cd87
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
10 years agoRemove usage of external dependencies from the RSS News demo
Topi Reinio [Fri, 27 Jun 2014 08:00:24 +0000 (10:00 +0200)]
Remove usage of external dependencies from the RSS News demo

Examples in qtdeclarative shouldn't depend on Qt Quick Controls,
Layouts, or add on modules like Qt Graphical Effects.

Change-Id: Ic069ed3223a4cfebde5263e846ae394aebed0b33
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Niels Weber <niels.weber@digia.com>
10 years agoFix segfault on certain resize patterns in QQuickWidget
Laszlo Agocs [Tue, 1 Jul 2014 09:36:33 +0000 (11:36 +0200)]
Fix segfault on certain resize patterns in QQuickWidget

Resizing to an empty size followed by another resize leads to
sync() without having the context and the render control intialized.
This is wrong.

Task-number: QTBUG-39858
Change-Id: I5908723272165a656d192644cceb16ed253e6d3b
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
10 years agoAdd findChild to TestCase.
Mitch Curtis [Wed, 2 Jul 2014 07:53:00 +0000 (09:53 +0200)]
Add findChild to TestCase.

This is useful for auto tests where it's necessary to have access to
dynamically created child items. For example:

property Component threeItemDelegate: Text {
    objectName: "delegate" + styleData.index
    text: styleData.value
}

...

function test_stuff() {
    ...

    var delegate0 = findChild(item, "delegate0");
    // check delegate0 for some condition...
}

[ChangeLog][QtTest][TestCase] Added findChild function to TestCase.

Change-Id: I04a8b07c9904768c07ec12f4b03f1afb1989e054
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
10 years agoVerbose fatal instead of crash when the scene graph state is invalid.
Gunnar Sletta [Thu, 3 Jul 2014 10:15:46 +0000 (12:15 +0200)]
Verbose fatal instead of crash when the scene graph state is invalid.

Change-Id: I9a55bcbf9e94084c0cadac561e4707d47f5f8744
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
10 years agoV4 IR: (natural) loop detection.
Erik Verbruggen [Fri, 21 Mar 2014 10:22:41 +0000 (11:22 +0100)]
V4 IR: (natural) loop detection.

We perform loop detection to be able to assign to each block its loop,
an chain them up from inner loop to outer loop. The new algorithm works
on each basic block just once, and looks at a basic block just the
number of connections it has. As it relies on the dominator tree it is
more robust on actually finding al looping constructs and only those
rather than relying on the statements used. It assumes that a basic
block is analyzed before the one that dominate it (to guarantee finding
outer loop headers before inner loop headers), so blocks are ordered to
work on them in a way that guarantees that, using dominator tree depth,
that is trivially available.

Loop detection allows us to then schedule the loop body before the part
after the loop (the header dominates both so just domination cannot
choose between both), and can be used to optimize loops (either
unrolling the first iteration or hoisting constant parts out of it).

It also helps with generated JavaScript code: in order to simulate gotos
or other unconditional branches, nested labeled do-while(false) loops
are often used in combination with break/continue to "jump" between
"loops".

Change-Id: Idfcc74589e057b191f74880ffd309d0a9c301811
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
10 years agoAvoid race condition in QQmlEngine on shutdown.
Gunnar Sletta [Tue, 1 Jul 2014 12:48:07 +0000 (14:48 +0200)]
Avoid race condition in QQmlEngine on shutdown.

The QQmlTypeLoader was deleted (and its thread shut down) when
the QQmlEnginePrivate was destroyed. However, the QQmlTypeLoader
runs a thread which would happiliy make calls on the engine and
its managed data. Fix this by stopping the QQmlTypeLoader's
thread right away in QQmlEngine.

Task-number: QTBUG-39905
Change-Id: Ida8e95d083f79237c74b036fd3521133a9fa4ac7
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
10 years agoRemove old state logic for ComboBox
Frederik Gladhorn [Wed, 22 Jan 2014 15:18:47 +0000 (16:18 +0100)]
Remove old state logic for ComboBox

The editable state is now part of the Accessible attached property, so
this hack is no longer needed.

Change-Id: Id17ec508015a8b9663804123e544f6c71ff38177
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>