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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>