aboutsummaryrefslogtreecommitdiffstats
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix QJSEngine::evaluate using the wrong execution contextv5.3.0Simon Hausmann2014-05-091-4/+9
| | | | | | | | | | | | | | | | | | In contrary to what the documentation says, QJSEngine in Qt 5.x executes in the context of the global object (QScriptIsolate always called enter on the QV8Engine's "root" context, thus making it current). The v4 implementation unfortunately did what the documentation said and used the current context, which is wrong in many ways. For example it completely breaks the optimization of stack allocated contexts, because when a C++ callback is called from within a JS function with a stack allocated context and that C++ code calls QJSEngine::evaluate and creates new closures, the stack context would become an outter context and cause crashes during GC. This patch restores the behavior of Qt 5.0/5.1 and fixes the documentation. Task-number: QTBUG-38530 Change-Id: Ie6481f02e676954cc94b188a1c87c88e7c56dafa Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix crash on host/target word size mismatchesSimon Hausmann2014-05-092-11/+6
| | | | | | | | | | | When compiling on a 64-bit host and using the QV4::CompileData on a 32-bit target, the size of QArrayData is different. Therefore we cannot use it in the QV4::CompiledData and have to resort to storing only the characters in there. We can at least still use fromRawData when extracting strings, but the QStringData will have to be allocated now. Change-Id: Ia9dab1722ed72186451b65ba74457051c6ce3155 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Update qmltypes filesAlan Alpert2014-05-065-23/+295
| | | | | | | | | | | | | Additionally, fixes some revisioning errors which a manual inspection of the qmltypes files diffs revealed. -mipmapChanged signal is new -windowTitleChanged signal is new -Matrix4x4 made 5.3, but was revisioned for 5.4 Task-number: QTBUG-29806 Change-Id: I4cb8bca6ac6fe8040871734c88aabcd392c1d696 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Android: Fix crash in String.replace() in release buildsv5.3.0-rc1Eskil Abrahamsen Blomfeldt2014-05-051-4/+7
| | | | | | | | | | | | | | | | | When enabling optimizations in the compiler, it produces bogus code for the regExp->value deref in the line nMatchOffsets += regExp->value->captureCount() * 2 This is a random refactoring to work around the compiler bug. The only line that actually needs to be touched is the one mentioned above, but I replaced all uses of regExp->value so that it wouldn't look too weird. Task-number: QTBUG-38692 Change-Id: Ib33a523a86ce51ebc6c7095a803fedaebcaa8e63 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Always implement text input "canPaste" propertyBernd Weimer2014-05-022-6/+4
| | | | | | | | | | | | | | | This is needed for TextField control for instance. If QT_NO_CLIPBOARD is defined, canPaste will always return false. Fixes dialogs auto test when QT_NO_CLIPBOARD is defined. [ChangeLog][QtQuick][Platform Specific Changes] Added canPaste property to TextInput element also on platforms that don't support a clipboard (QT_NO_CLIPBOARD is defined). Change-Id: Ia85205672ba59c1fce70852458c514b03d332de6 (cherry picked from commit c2d802049e48d1d6f0bce6eb0972fb26dc4d6ce3) Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
* v4: ignore quiet bit for NaNs in 32 bit value encodingFawzi Mohamed2014-04-301-10/+11
| | | | | | | | | | | on iOS x % 0 generates a NaN with the silent bit set, i.e. 0x7ffc_0000_0000_0000 which was interpreted as a null managed object which crashed the interpreter. Task-number: QTBUG-36859 Change-Id: Idf31ad9f0454f83d321b49b2f76bdbc2ee906189 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Doc: Remove references to the unimplemented 'time' typeSze Howe Koh2014-04-301-3/+0
| | | | | | | Task-number: QTBUG-32295 Change-Id: Iedd61d0494aeebd6d99a39f4eb81e7461c20a079 Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
* v4: assert when an unsupported double value is stored in a valueFawzi Mohamed2014-04-301-2/+2
| | | | | | | | | | | | | | | | | we assume that just few NaN values can be generated by the HW (currently 0x7ff800..00 and 0x7ffc00..00), and we use the other values to encode js values. If uninitialized memory is interpreted as double or another NaN is explicitly constructed and feed to the interpreter, it might crash (later when actually accessing that value). Adding an assertion to catch those values when assertions are active for the 32 bit encoding (64 bit already has it). Task-number: QTBUG-36859 Change-Id: I7ac7b2619f286ba19066729836af718014a515a6 Reviewed-by: Johannes Matokic <johannes.matokic@microchip.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix linking of qmlimportscanner in MSVC debug builds.Friedemann Kleint2014-04-281-1/+1
| | | | | | | | | | Qt5QmlDevToolsd.lib(qqmlirbuilder.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QmlIR::CompiledFunctionOrExpression::CompiledFunctionOrExpression(void)" Use Q_QML_PRIVATE_EXPORT so that it does not have effect when building qmldevtools. Change-Id: I138fe9cba518829d7ec1d0bfe9d4a9d657446c7d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix translations in states causing failing assertionsSimon Hausmann2014-04-282-12/+29
| | | | | | | | | | | | | This is a smaller fix suitable for the release branch, merely adding support for translations to the bytearray compilation step for states and ensuring a consistent error message when qsTr is used in list models. The proper fix will be done in dev that eliminates the entire intermediate QByteArray storage for custom compilers. Task-number: QTBUG-38492 Change-Id: If5171f16eb742c718e48b8bbcb265b0c241cd5e7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix packaging buildsSimon Hausmann2014-04-281-2/+2
| | | | | | | | In order to access the js parser in release builds, we need to export these symbols (althoug they remain private API). Change-Id: Id534bfc8027f9a6feab53b09e7397d920e59e3f8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix marking of prototype objects in internal class poolSimon Hausmann2014-04-285-17/+58
| | | | | | | | | | As per reported bug, we have to protect ourselves against potential loops and can mark the internal classes much simpler by just walking through the memory pool they were allocated in. Task-number: QTBUG-38299 Change-Id: I3ae96e8082e76d06f4321c5aa6d2e9645d2830a0 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Follow QOpenGLContext API renamingLaszlo Agocs2014-04-2514-23/+23
| | | | | | Task-number: QTBUG-38564 Change-Id: Ice1170339f7d650fcb6accfccf325471629343d6 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Getting the render window of an offscreen windowPaul Olav Tvete2014-04-243-5/+51
| | | | | | | | | | When using a QQuickWidget, the QQuickWindow is hidden and the contents are displayed in another window. Some components need to query the actual window, e.g. when positioning a popup. Task-number: QTBUG-38116 Change-Id: I34452be2179ccc9e216e4d89264dc700e0cf42a0 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* V4 regalloc: fix register spill choice under high pressure.Erik Verbruggen2014-04-241-1/+9
| | | | | | | | | | | | When a register is needed for an input parameter of an operation, and all registers are already in use, do not select a register for spilling when it is also used in the current operation. Task-number: QTBUG-38451 Change-Id: I4a8f28cbaadce2dbb9d0c450ccac0ed572936c24 Reviewed-by: Albert Astals Cid <albert.astals@canonical.com> Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix crash when loading QML that tries to set non-existent group propertiesSimon Hausmann2014-04-241-1/+2
| | | | | | | | | | This happens when trying to search for implicit component definitions, which only makes sense if we have a property cache. Task-number: QTBUG-38466 Change-Id: I788159453efc24bcda1b9709a1933b49fd54d6a7 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Extend the QML bootstrap library by the IR buildersSimon Hausmann2014-04-2337-176/+444
| | | | | | | | | | | | | This is among other things needed to fix the qml import scanner to detect dependencies from .js files correctly. The patch also fixes the use of Q_QML_EXPORT towards Q_QML_PRIVATE_EXPORT where appropriate and corrects the wrong include path for the double conversion code to actually be relative to the file it is included from. This worked by accident because of other include paths present in the build. Change-Id: I338583dad2f76300819af8ab0dae8e5724c84430 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Implement the new inputmethod query API for Qt QuickPaul Olav Tvete2014-04-222-0/+47
| | | | | | | | | Part fixing Android input methods. This change corresponds to 68a9229a97d358639 in the qtbase repository. Task-number: QTBUG-37511 Change-Id: I483abf6a9d5dec86dbd1ae2dff2a85bc19d126f1 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* If a popup window is opened, do not change the focusShawn Rutledge2014-04-221-4/+6
| | | | | | | | | | | | | It's not working to have QQuickWindow lose focus every time a menu is opened. This doesn't happen on OSX because menus are implemented as special native ones, but on X11 a menu is another window. In QtQuick Controls it's useful for copy/cut/paste Actions to be enabled based on whether some text has focus. Change-Id: I092b46133b9a8a44639ad9d89ee2bdfe30206bd9 Task-number: QTBUG-36292 Task-number: QTBUG-36332 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* QQuickItemView/QQuickPathView: Fix creation of delegatesAlbert Astals Cid2014-04-182-0/+4
| | | | | | | | | | When the delegate is set before the model and after the ItemView/PathView has been created Task-number: QTBUG-38368 Change-Id: I6963abe28087699cf4e8921153dc7641bae3b220 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Make sure the clipPath is retained as state of Context2DUlf Hermann2014-04-181-0/+2
| | | | | | | | | | | | | | The W3C spec doesn't say anything about the clip path getting reset automatically at any point and so I guess we should retain it. This of course is terribly annoying if the canvas element gets resized and ends up with a default clipPath that doesn't match the canvas anymore. You basically have to call reset() in every onPaint now. However, this just highlights a general problem with stateful canvas contexts and we cannot ignore user defined clipPaths like this. Task-number: QTBUG-38297 Change-Id: I233226af6458298ef3d752d08ecdebebae2e0a8f Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Prevent a crash when the item is deleted but not removed from cacheAndy Shaw2014-04-181-1/+1
| | | | | | | | | | | | | | If the item is not removed from the cache when it is deleted then the cache can end up pointing to an invalid item which when accessed will cause a crash. Task-number: QTBUG-38430 [ChangeLog][QtQml] Prevent a crash when the item is deleted but is not removed from the QQmlDelegateModel's cache. Change-Id: I8cf76b014be62a432d909a3573231cec84a6d678 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Refine fix for dynamic properties on QObjects wrapped in JavaScriptSimon Hausmann2014-04-171-1/+1
| | | | | | | | | | | | | | This is an ammendment to commit 60730cbb5e5475b5db6a15641211aa6958a93197 to further restrict the ability to set dynamic properties on JS wrapped QObjects only on those that are associated with a qml context. Only one such association comes with the static property lookup rules of QML and therefore only those should be prohibited from dynamic properties. The previous implementation on using the "compiledData" field to detect QML association or not is not strong and reliable enough. Change-Id: I10c0e6e58a2727c01a6cb56fdf912bf250333e1f Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* V4: fix register usage on ARM.Erik Verbruggen2014-04-173-7/+7
| | | | | | | | | | | JSC was using r3 as the address scratch register, which collides with the 4th parameter in a function call. This sometimes shows up when generateFunctionCall needs to do a calulated jump. Also fix the usage of r11, which seems to be the fp on some platforms. Change-Id: Ib2ea64b9342e5aa631db6a7641747f899b2fbd89 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Regenerate mipmaps after changing the imagedata of a texture.Gunnar Sletta2014-04-151-0/+1
| | | | | | | | | | This has been a latent bug since the class was written, but has only surfaced after 15999f14f146b5c04fb40b31b69ceeeece273430 when mipmapping was allowed for all QSGPlainTextures. Task-number: QTBUG-38321 Change-Id: I058e554c4035c573d2ddb4ea793d8ad53e11e54b Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Disable mipmap filtering by default in texture materials.Gunnar Sletta2014-04-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 15999f14f146b5c04fb40b31b69ceeeece273430 changed QSGPlainTexture so it allows mipmap filtering by default. This requires a call to glGenerateMipmap() for textures to be valid, if mipmap filtering is used. Our texture materials follow the GL default which is to use the somewhat useless GL_NEAREST_MIPMAP_NEAREST. As a result we've had a number of bugs where textures are used and the call to glGenerateMipmap() is omitted. This happens for instance when using QQuickTexture::createTextureFromId(). Generating mipmaps by default is also a serious performance regression. To remedy this and minimize the impact on existing code, we disable mipmapping by default. [ChangeLog][QtQuick][SceneGraph] QSGTextureMaterial and QSGOpaqueTextureMaterial uses QSGTexture::None as default mipmap mode. Task-number: QTBUG-38321 Change-Id: Ia9d09fbcf710efb4575938053d0a2046f604a197 Reviewed-by: Caroline Chao <caroline.chao@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Fix assignments of null strings in QML and JavaScriptSimon Hausmann2014-04-122-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | Assigning "" to a string based property would exhibit inconsistent behavior: * When assigned as a literal, it would assign an empty string * When assigned from JavaScript, it would assign a null string When the assignment was done _to_ a QByteArray property, it would hit the case of calling QVariant::convert where the incoming variant is either an empty or a null string and the target is a QByteArray. For historical reasons - as documented - QVariant::convert will return false when the incoming variant is a null variant. In V8 assignment from JavaScript would produce an empty string and thus hit the "succesfull" conversion code path in QVariant to convert to a seemingly empty QByteArray. With v4 a null string would result in a failed conversion and spurious warnings as seen in the reported task. This patch ensures that we consistently map "" to a null string, when it comes from JavaScript or QML as a literal string. We now also detect the situation of trying to convert a (valid) null variant to another target type. Task-number: QTBUG-37197 Change-Id: I68f9031262fdd287d69a38d5468fb38a20441d7b Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* V4 IR: only mark blocks after iterator calculation as loop blocks.Erik Verbruggen2014-04-121-4/+2
| | | | | | | | | | When the iterator calculation contains a condition, newly created basic-blocks were marked as loop blocks. However, their parent was not the loop header. Task-number: QTBUG-38187 Change-Id: I9ee7a3e0bd536c2a005b91f8333931ce929245af Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Avoid event propagation with Keys.forwardToJ-P Nurmi2014-04-121-2/+2
| | | | | | | | | | | | | | | | [ChangeLog][QtQuick][Important Behavior Changes] Keys.forwardTo no longer propagates key events to the target item's parents. This makes Keys.forwardTo act more as expected, like an event filter. This way Keys.forwardTo becomes usable for composite types that want to enable the Keys attached property handling by forwarding key events from an internal editor. Task-number: QTBUG-37924 Change-Id: I66d1b7245df39678767e79d4bdd46fc15e5c5c3f Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Fix the initial value of XmlListModel::countJ-P Nurmi2014-04-101-1/+1
| | | | | | | | | QAbstractItemModel::rowCount() should under no circumstances return -1 or it will crash QSortFilterProxyModel. Change-Id: Ib3d4a57d5fc3761a7fc6f6925c3d25bdea20ce78 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Document QJSEngine as reentrant.Michael Brasser2014-04-101-0/+1
| | | | | Change-Id: I7fc41b33036bca6736bc24fa62522ce5d30ef1f4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Reduce memory pressure on JS stack when garbage collectingSimon Hausmann2014-04-091-3/+8
| | | | | | | | | | | | As the identifier table grows with long running programs, we may end up allocating more identifiers than we have space left on the JS stack for them alongside all the other objects in the environment. To mitigate this, we can simply treat the identifiers as roots, mark them manually and only end up putting sub-strings onto the JS stack if necessary. Task-number: QTBUG-36183 Change-Id: Ie6994555305c84b007860792d066a8df60089847 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix unreliable behavior of array methods on qml list propertiesSimon Hausmann2014-04-095-5/+27
| | | | | | | | | | | Array methods such as forEach rely on the hasProperty boolean of getIndexed to be set appropriately. Some getIndexed implementation - such as the QQmlListProperty one - didn't initialize it correctly and therefore the behavior was undefined. Task-number: QTBUG-38088 Change-Id: I34bc3136d8cc2bc280397d0c4d5051e7d72269e8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add support for dynamic properties for QObjects in JavaScriptSimon Hausmann2014-04-091-3/+10
| | | | | | | | | | | | | | | | | In QtScript you could add properties to a JS object that wraps a QObject. Depending on the wrap option the property was either stored on the JavaScript side or as dynamic QObject property. In QJSEngine/QJSValue, neither was supported - properties could not be added. For QObjects wrapped in JavaScript that weren't created by QML, we can restore the behavior of storing dynamically added properties as JavaScript properties. This makes porting from QtScript to QJS* much easier. Task-number: QTBUG-37408 Change-Id: I5ef1f379c08c3d84de9bdcac9b6a9397238064de Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* ListView: fix rounding errorsJ-P Nurmi2014-04-092-7/+7
| | | | | | | Task-number: QTBUG-37339 Change-Id: I223e4d6bcabb1daa705c0ed2212e7e2b2fc3f37c Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Fix remaining QQmlLocale auto-test failuresSimon Hausmann2014-04-081-2/+5
| | | | | | | | | | | | | | | | Thanks to improvements in QDateTime's parser, we can unskip a bunch of tests. What remained was dateFromLocaleTimeString, which failed because it relied on the earlier behavior of a failed conversion from a _time_ string to a date also returning an invalid date object. This behavior is restored by leaving the QDateTime object as invalid unless the converted time is valid. In Qt <= 5.1, QDateTime::setTime would make the entire datetime object invalid if the provided time was invalid. In Qt >= 5.2 it remains potentially valid if the date at least is correct - which was the case here as it was initialized from currentDateTime. Change-Id: I32a2cd2a9631cca3b12773e4c55169baa3eeaf1a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix wrong register usage for integer binopsSimon Hausmann2014-04-081-23/+8
| | | | | | | | | | | | | | | | | | | | | | When doing of integers where we use a three argument variant of masm (lhs/rhs/target), we need three general purpose registers. If the target temp of the binop is a register, we use that as a target, otherwise fall back to ReturnValueRegister (scratch). In that case we don't need to move from RVR to target register. Additionally we need to load lhs and rhs into registers, and for the lhs we use the target register and for the rhs the scratch register. So we start by loading the lhs into the target register and the rhs into the scratch register. However if the rhs is already assigned to a register and that register happens to be the target register, then the earlier load of the lhs into the target register overwrote our rhs! This is fixed by being more careful in the choice of the target temp's assigned register as "scratch" register for the lhs, i.e. don't use it if the target temp is also assigned to the same register as the rhs. Task-number: QTBUG-38097 Change-Id: I2ffec55cb98818fa9ebb5a76a32b6dca72175893 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Zero memory in WinRT allocatorAndrew Knight2014-04-081-0/+1
| | | | | | | | | The memory is assumed to be zero-initialized, and this wasn't happening on WinRT. Task-number: QTBUG-38132 Change-Id: I8686a40dacdc20bd702cc43a067209bfa997e7b2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* make accessibility plugin declare that it extends QuickOswald Buddenhagen2014-04-081-0/+1
| | | | | Change-Id: I62789da1ec45ad0647705dc5a7b509ff36c388f8 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Fix XHR auto tests always failingSimon Hausmann2014-04-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | The test (rightly so) expects that even for a 400 response, the responseBody must be preserved - as per commit 0949071f13e7bcbc16a0f07f496e0b6a23b04edd. However before commit fd5dd2712656cbc674c8360754394e41dd82e40c in qtbase, 400 was mapped to QNetworkReply::UnknownContentError, which is "handled" by QQmlXMLHttpRequest::error in the sense that the body is preserved. After the qtbase behavioral change, 400 now maps to QNetworkReply::ProtocolInvalidOperationError, which was _not_ handled, the body was cleared and the test failed. The revdep of qtdeclarative for qtbase should've caught the behavioral change in qtbase, but unfortunately the auto-test was disabled (marked insignificant). This patch adjusts the xhr implementation to the behavioral change in qtbase and also re-activates the xhr auto-test (we really should be testing our xhr implementation in the CI system...). Task-number: QTBUG-38180 Change-Id: I7655fd9037752ad644a98d01257bf5f81e7daa15 Reviewed-by: Mandeep Sandhu <mandeepsandhu.chd@gmail.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
* Fix memory corruption in XHR implementationSimon Hausmann2014-04-081-0/+1
| | | | | | | | | | | | Now that the member data of Object is also on the GC heap, it is even more important to call the base implementation of markObjects when re-implementing it ;-) Fixes also three XHR auto tests (text, cdata and stateChangeCallingContext) Change-Id: Ifd033cac64a8cf27a9186d8cd9eb94369d8a60a5 Reviewed-by: Michael Brasser <michael.brasser@live.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Support dumping of animation jobs via QML_ANIMATION_TICK_DUMP.Michael Brasser2014-04-0819-3/+167
| | | | | Change-Id: I0b444321667691be3e1037164d02f29ed4dfc13e Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fix marking of prototype objects in chainSimon Hausmann2014-04-071-9/+6
| | | | | | | | | | | | | | | | With a real prototype chain it can happen that an internal class' prototype's class itself has a prototype. Therefore the first transition on the empty class is a PrototypeChange one, but the class the transition leads to may have PrototypeChange transitions itself, which weren't marked. There are multiple solutions to this, but this patch is the minimal fix by recursing fully through the internal class tree. That way it's easier to back-port the fix also into 5.2.x based branches. Task-number: QTBUG-37834 Change-Id: I901b13a2663fbad5844003ca5752f2f304de320c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Doc: Fix apidoc for QQuickLoader::sourceComponentKevin Funk2014-04-071-2/+1
| | | | | | | | | | Setting this to an empty string doesn't make sense nor works Change-Id: I4dd89d0356da30bc46e5fdac827e30b6f9a6a7a4 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* Don't start continuing animation when it doesn't have children.Gunnar Sletta2014-04-071-2/+5
| | | | | | | If we did, it would never stop. Change-Id: Ie9d8f1731f6fa555f8dd6a56d6967a8f8f19a9f4 Reviewed-by: Michael Brasser <michael.brasser@live.com>
* Don't mipmap by default in QSGSimpleTextureNodeGunnar Sletta2014-04-071-0/+2
| | | | | | Task-number: QTBUG-37646 Change-Id: I2f27568ebd89c1f451f910dd03ea21c01c4adad1 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Don't append garbage to the function parameter slotswip/gcThiago Macieira2014-04-041-1/+2
| | | | | | | | | | | | | | If the argument is neither a temporary nor a constant, slot isn't initialized. So don't try to add it. qqmltypecompiler.cpp:2548:36: error: variable 'slot' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] qqmltypecompiler.cpp:2553:36: note: uninitialized use occurs here _functionParameters.append(slot); ^~~~ Change-Id: I5a538bfa0ef1fbbd00e23dfd6e15c404359c7c46 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Regression: Fix id objects in group propertiesSimon Hausmann2014-04-041-5/+4
| | | | | | | | | Setting someGroupProperty.id should not be subject to the usual restrictions with regards to valid values for id properties. Task-number: QTBUG-38085 Change-Id: Ie66d9d4d4524ddaf5a6a0b0e260354db44d9995e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Make the destroy method optionalLars Knoll2014-04-041-4/+5
| | | | | | | | | | | | This allows us to avoid calling a destructor on objects that don't require one. After the memberData change this should be most objects. Also fix a bug where we didn't call the destroy() method on large objects, potentially leaking memory. Change-Id: I1708055d568d85b0a3876899d35e8c3eb92dd222 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Garbage collect member dataLars Knoll2014-04-0412-43/+207
| | | | | | | | Move the allocated member data into the garbage collected area, so that we can avoid using malloc/free for it. Change-Id: I20625efa67ecd60238568742b74854b0c8cb2e3e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>