aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Get rid of different macros for vtable specializationsLars Knoll2014-07-2228-110/+57
| | | | | | | Detect existence of a a vtable entry at compile time. Change-Id: Ieed5d34b063184bc4435b22c6685ac0e3fabf493 Reviewed-by: Simon Hausmann <[email protected]>
* Use Members for storing the bound arguments in BoundFunctionLars Knoll2014-07-225-12/+18
| | | | | | | | Cleans up the code, and allows us to remove the destructor for bound function objects. Change-Id: Id32ac69171f7975ec7679d07d25c0eb6b4ca6fb5 Reviewed-by: Simon Hausmann <[email protected]>
* Avoid calling destroy() on most objectsLars Knoll2014-07-2233-104/+90
| | | | | | | | | 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 <[email protected]>
* Fix Scoped<T> constructors/assignment operators that take a T*Simon Hausmann2014-07-222-3/+12
| | | | | | | | 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 <[email protected]>
* Remove XFAILs from tst_QQuickTextEskil Abrahamsen Blomfeldt2014-07-221-4/+0
| | | | | | | | The bug for these has been fixed. Task-number: QTBUG-39961 Change-Id: I306dff766f048faf527a18f21b69996641fd8b79 Reviewed-by: Lars Knoll <[email protected]>
* Don't allow a filtering item to block other filtering items.Andrew den Exter2014-07-223-9/+94
| | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Martin Jones <[email protected]>
* qml: Make ownership of CompiledUnit more clearHolger Hans Peter Freyther2014-07-214-8/+7
| | | | | | | | | | | | 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 <[email protected]>
* qml: Fix potential memory leak in the file selectorHolger Hans Peter Freyther2014-07-212-5/+5
| | | | | | | | | | | 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 <[email protected]>
* v4: Delay creating the ScopedValue/ScopedProperty in objectLiteralHolger Hans Peter Freyther2014-07-201-15/+19
| | | | | | | | | | | | | | | | 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 <[email protected]>
* v4: Remove dead code ScriptFunction constructorHolger Hans Peter Freyther2014-07-201-6/+1
| | | | | | | | | 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 <[email protected]>
* v4: Manually inline the access to the execution engineHolger Hans Peter Freyther2014-07-202-14/+7
| | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* Remove QWidget include from QQmlProperty test.Andrew den Exter2014-07-171-1/+0
| | | | | Change-Id: I1a23816b65273c920b319836f015f6746aa3ad06 Reviewed-by: Robin Burchell <[email protected]>
* Add QQuickFontMetrics.Mitch Curtis2014-07-177-2/+616
| | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Eskil Abrahamsen Blomfeldt <[email protected]>
* Add containsPress property to MouseAreaMartin Jones2014-07-167-4/+123
| | | | | | | | | | | | | | | | 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 <[email protected]>
* Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-1072-162/+467
|\ | | | | | | Change-Id: Iba61035910c46627e5e1c3824757da7b3d573657
| * Docs: fix "classname" indentation in the qmldir specsJ-P Nurmi2014-07-091-1/+1
| | | | | | | | | | Change-Id: Idaaaaa77654c2cd3abb56d0bfd3ed7bac7281632 Reviewed-by: Topi Reiniö <[email protected]>
| * Fix role for generic Accessible itemsFrederik Gladhorn2014-07-092-2/+2
| | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Caroline Chao <[email protected]>
| * Calqlatr demo: Remove unused filesNiels Weber2014-07-0712-71/+1
| | | | | | | | | | | | | | There were a few images etc that were never used. Remove them. Change-Id: I606241903cf098cb495aa06ac4c595fb175cd9fc Reviewed-by: Topi Reiniö <[email protected]>
| * Remove usage of external dependencies from the RSS News demoTopi Reinio2014-07-072-58/+23
| | | | | | | | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: Leena Miettinen <[email protected]> Reviewed-by: Niels Weber <[email protected]>
| * Fix crash on QQmlEngine destruction.Andrew den Exter2014-07-032-2/+3
| | | | | | | | | | | | | | | | | | QQmlTypeLoader references QQmlImportDatabase in a thread, so change the declaration order so QQmlTypeLoader is destroyed and its thread stopped before QQmlImportDatabase is destroyed. Change-Id: Idfa511cf9625f893c4398f419a74d869169b478d Reviewed-by: Gunnar Sletta <[email protected]>
| * Don't dereference null QQuickWindowPrivate.Sérgio Martins2014-07-031-1/+5
| | | | | | | | | | | | | | | | | | windowDestroyed() triggers a sendPostedEvent(DeferredDelete) to cleanup GL resources. If the window was deleted through deleteLater() it will also be deleted at this point. Change-Id: I3b0cc0f36c4a543c5fbaa4af107dc4aa0c8b6725 Reviewed-by: Gunnar Sletta <[email protected]>
| * Add opt-out environment variable for @2x imagesMorten Johan Sørvig2014-07-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There are cases where @2x images are in use but where you don't want the associated behavior: - You are implementing an image editor - You are inheriting a resource set which has @2x images, but don't want that behavior with Qt. Add support for disabling @2x behavior with QT_HIGHDPI_DISABLE_2X_IMAGE_LOADING. Change-Id: Ia570dfe556e0571a19e5ebdc626c4a7e626721b9 Task-id: QTBUG-38485 Reviewed-by: Morten Johan Sørvig <[email protected]>
| * Doc: correct link/compilation errors in Qt DeclarativeNico Vertriest2014-07-0253-59/+459
| | | | | | | | | | | | | | Task-number: QTBUG-34749 Change-Id: I507d54b0568d77c6099a0bd99f5c369b8667032a Reviewed-by: Venugopal Shivashankar <[email protected]> Reviewed-by: Martin Smith <[email protected]>
| * Fix crash in Flickable with pressDelay.Martin Jones2014-07-021-8/+8
| | | | | | | | | | | | | | | | Looks like this was exposed by the touch event compression change. Task-number: QTBUG-40000 Change-Id: I037c848e0c5d766857dff3162c244213aba847da Reviewed-by: Gunnar Sletta <[email protected]>
* | Change default to QQuickWidget in the comparison exampleLaszlo Agocs2014-07-091-1/+1
| | | | | | | | | | | | | | | | 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 <[email protected]>
* | Call glBindTexture() via QOpenGLFunctions in qsg_safeguard_texture().Friedemann Kleint2014-07-081-1/+3
| | | | | | | | | | | | | | Fix linking for dynamic OpenGL builds. Change-Id: I82e6597d2cb9a74707e3f1e9fce245cce1a5d72b Reviewed-by: Laszlo Agocs <[email protected]>
* | Make sure JIT architectures lists are in syncDmitry Shachnev2014-07-072-3/+7
| | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Fix segfault on certain resize patterns in QQuickWidgetLaszlo Agocs2014-07-071-1/+8
| | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Add findChild to TestCase.Mitch Curtis2014-07-044-0/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]> Reviewed-by: J-P Nurmi <[email protected]>
* | Verbose fatal instead of crash when the scene graph state is invalid.Gunnar Sletta2014-07-048-0/+87
| | | | | | | | | | Change-Id: I9a55bcbf9e94084c0cadac561e4707d47f5f8744 Reviewed-by: Robin Burchell <[email protected]>
* | V4 IR: (natural) loop detection.Erik Verbruggen2014-07-045-81/+291
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Avoid race condition in QQmlEngine on shutdown.Gunnar Sletta2014-07-043-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
* | Remove old state logic for ComboBoxFrederik Gladhorn2014-07-031-4/+0
| | | | | | | | | | | | | | | | 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 <[email protected]>
* | Enable QSG_RUNTIME_DESCRIPTION by default for debug builds.Gunnar Sletta2014-07-032-5/+8
| | | | | | | | | | | | | | | | | | This can be quite helpful when doing scene graph debugging with QSG_RENDERER_DEBUG=dump or using qDebug() on nodes in general. Change-Id: I6328d3f2a0fad87161c386bed14408598c986dcb Reviewed-by: Robin Burchell <[email protected]>
* | Profiler: Fix MSVC warning about signed integers.Friedemann Kleint2014-07-031-1/+1
| | | | | | | | | | | | | | | | | | src\qml\jsruntime\qv4profiling_p.h(144) : warning C4146: unary minus operator applied to unsigned type, result still unsigned Introduced by ac56e7cda724aa7463ef6ffe5f0e93bd3208cb51 . Change-Id: Ib77234d663bfafd9d55ae2dd551b0aabd6561d6d Reviewed-by: Ulf Hermann <[email protected]>
* | Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/devFrederik Gladhorn2014-07-0259-428/+2841
|\ \
| * | Merge remote-tracking branch 'origin/5.3' into devFrederik Gladhorn2014-07-0259-428/+2841
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf examples/quick/scenegraph/openglunderqml/squircle.h src/quick/doc/src/qmltypereference.qdoc src/quick/scenegraph/qsgthreadedrenderloop.cpp Change-Id: Ife4f4b897044a7ffcd0710493c6aed1d87cf1ef9
| | * Skip rssnews demo if xmlpatterns is not presentLaszlo Agocs2014-07-011-1/+2
| | | | | | | | | | | | | | | | | | | | | Otherwise builds without the QtXmlPatterns module will fail. Change-Id: I11d0b84653f8d59787b09cd9c12977d18be92729 Reviewed-by: Jerome Pasion <[email protected]>
| | * Merge "Merge remote-tracking branch 'origin/5.3.1' into 5.3" into ↵Frederik Gladhorn2014-06-301-0/+31
| | |\ | | | | | | | | | | | | refs/staging/5.3
| | | * Merge remote-tracking branch 'origin/5.3.1' into 5.3Frederik Gladhorn2014-06-251-0/+31
| | | |\ | | | | | | | | | | | | | | | Change-Id: Ic4418ade05ff7d89cbb375a25d9fd80353a2317a
| | | | * Add changelog for 5.3.1v5.3.1Simon Hausmann2014-06-181-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I5d9c67a2f89c0c191de9e6de24d068fca17dba0e Reviewed-by: Jani Heikkinen <[email protected]>
| | * | | Avoid double deletion of QQuickWindowShawn Rutledge2014-06-303-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's uncertain why 4fc0df58b8458052a818e3e970a97457882808e6 added the call to sendPostedEvents(0, QEvent::DeferredDelete) but now we can see that it easily results in the destructor calling itself, and therefore double-deleting its own d_ptr. removePostedEvents seems safer to ensure that the window cannot be doubly deleted, in spite of the qdoc warning that "You should never need to call this function." Task-number: QTBUG-33436 Change-Id: I4873ebe179dde551407eba1f6baac5f03ca7f177 Reviewed-by: J-P Nurmi <[email protected]> Reviewed-by: Alan Alpert <[email protected]>
| | * | | Fix intermittent crash with older MinGW releasesRobin KAY2014-06-271-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An alternate code-path was previously added to work around a bad signature for the SHParseDisplayName() function in older and non-w64 versions of the MinGW headers. This code-path incorrectly passed a single rather double indirect pointer to the third argument of that function causing it to produce corrupt data and subsequently crash. This change modifies the code to instead cast a pointer of the correct type to the incorrect type expected by the headers. Task-number: QTBUG-39793 Change-Id: I4d65dea4fc38d7e885468cd23434d8570c311fc2 Reviewed-by: Friedemann Kleint <[email protected]>
| | * | | Doc: Add documentation for the Maroon in Trouble exampleLeena Miettinen2014-06-275-4/+851
| | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I8b272894ef6374aeb6ec09275d7ce96d16a6be0f Reviewed-by: Topi Reiniö <[email protected]>
| | * | | Merge remote-tracking branch 'origin/stable' into 5.3Frederik Gladhorn2014-06-253-5/+7
| | |\ \ \ | | | |/ / | | |/| | | | | | | Change-Id: Iafccb173a9b5569bc9fd1022abb210955519fc61
| | | * | Update QtQuick import value to 2.3Samuel Gaist2014-06-232-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current documentation uses import QtQuick 2.2 which is wrong since there are new APIs like mipmap for the QML Image element. Task-number: QTBUG-39302 Change-Id: I3cc3a1522efd85090c3b4011429fa16b95e79435 Reviewed-by: J-P Nurmi <[email protected]> Reviewed-by: Jerome Pasion <[email protected]>
| | | * | Set locked state while locking for grab.Gunnar Sletta2014-06-201-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: If4b8fa77e6e3a288487a011e83791ad6a189675c Reviewed-by: Manish Sharma <[email protected]> Reviewed-by: Laszlo Agocs <[email protected]>
| | * | | Fix crash when deleting component in Component.onComplete through loaderSimon Hausmann2014-06-232-7/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a regression introduced with Qt 5.3.0. The recursion watcher code that is supposed to handle the test case of QTBUG-39775 can detect the recursion into the object creator. However the boolean that indicates the recursion is a member of a structure that's deleted afterwards. To avoid access to deleted memory, this patch simply reference counts data structure shared between the creators and also wraps the recursion watcher into a convenience class that also increases/decreases the reference count accordingly. Change-Id: I8d2e3e200ab1295e89d951e09f187d382a056d5a Task-number: QTBUG-39775 Reviewed-by: Lars Knoll <[email protected]>
| | * | | Fix memory leak in QQmlComponent::createObjectSimon Hausmann2014-06-232-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regression introduced with 5.3.0. Prevent the leak of the object creator on repeated createObject calls by using a scoped pointer. Change-Id: Ib4fe7c9c6926c2390f7ae78f3287bb7da5f60527 Task-number: QTBUG-39742 Reviewed-by: Lars Knoll <[email protected]>
| | * | | QQmlObjectCreator: Clear sharedState componentAttached in destruction/clearAlbert Astals Cid2014-06-201-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes crash when delegate is being deleted while not totally instantiated Valgrind trace: ==15748== Invalid write of size 8 ==15748== at 0x57A02DB: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:985) ==15748== by 0x57A0318: QQmlComponentAttached::~QQmlComponentAttached() (qqmlcomponent.cpp:989) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D348A5: QQmlPrivate::QQmlElement<QQuickFocusScope>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D34655: QQmlPrivate::QQmlElement<QQuickLoader>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x668736B: QObjectPrivate::deleteChildren() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66900EB: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1D4B5: QQuickItem::~QQuickItem() (qquickitem.cpp:2064) ==15748== by 0x5D33AE5: QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement() (qqmlprivate.h:106) ==15748== by 0x6689607: QObject::event(QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x5D1B012: QQuickItem::event(QEvent*) (qquickitem.cpp:7114) ==15748== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x665B826: QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66B1242: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x40711B: startShell(int, char const**, void*) (main.cpp:171) ==15748== by 0x407A74: main (main.cpp:227) ==15748== Address 0x1be83870 is 64 bytes inside a block of size 112 free'd ==15748== at 0x4C2C2BC: operator delete(void*) (vg_replace_malloc.c:503) ==15748== by 0x5815FB0: QQmlObjectCreator::~QQmlObjectCreator() (qqmlobjectcreator.cpp:156) ==15748== by 0x57A52AA: QQmlIncubatorPrivate::clear() (qscopedpointer.h:62) ==15748== by 0x57A53C6: QQmlIncubator::clear() (qqmlincubator.cpp:577) ==15748== by 0x5DCEA20: QQuickLoader::setActive(bool) (qquickloader.cpp:350) ==15748== by 0x5DCF6D2: QQuickLoader::qt_metacall(QMetaObject::Call, int, void**) (moc_qquickloader_p.cpp:277) ==15748== by 0x579DC66: QQmlPropertyPrivate::write(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1322) ==15748== by 0x579E76E: QQmlPropertyPrivate::writeValueProperty(QObject*, QQmlPropertyData const&, QVariant const&, QQmlContextData*, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1246) ==15748== by 0x579F2F9: QQmlPropertyPrivate::writeBinding(QObject*, QQmlPropertyData const&, QQmlContextData*, QQmlJavaScriptExpression*, QV4::ValueRef, bool, QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlproperty.cpp:1578) ==15748== by 0x580CF69: QQmlBinding::update(QFlags<QQmlPropertyPrivate::WriteFlag>) (qqmlbinding.cpp:266) ==15748== by 0x580D5BD: QQmlBinding::expressionChanged(QQmlJavaScriptExpression*) (qqmlbinding_p.h:105) ==15748== by 0x57E6156: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:81) ==15748== by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76) ==15748== by 0x57E6130: QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (qqmlnotifier.cpp:76) ==15748== by 0x5788FA3: QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) (qqmlengine.cpp:721) ==15748== by 0x6688232: QMetaObject::activate(QObject*, int, int, void**) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x57882A7: QQmlData::destroyed(QObject*) (qqmlengine.cpp:1658) ==15748== by 0x668FD7D: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x55E8B64: QQmlDMAbstractItemModelData::~QQmlDMAbstractItemModelData() (qqmladaptormodel.cpp:95) ==15748== by 0x58643DC: QQmlDelegateModelPrivate::release(QObject*) (qqmldelegatemodel.cpp:520) ==15748== by 0x586440C: QQmlDelegateModel::release(QObject*) (qqmldelegatemodel.cpp:536) ==15748== by 0x5DFED4F: QQuickItemViewPrivate::releaseItem(FxViewItem*) (qquickitemview.cpp:2349) ==15748== by 0x5DBAB94: QQuickGridViewPrivate::addVisibleItems(double, double, double, double, bool) (qquickgridview.cpp:497) ==15748== by 0x5DFC94E: QQuickItemViewPrivate::refill(double, double) (qquickitemview.cpp:1751) ==15748== by 0x5DFF26A: QQuickItemViewPrivate::layout() (qquickitemview.cpp:1859) ==15748== by 0x5D275F7: QQuickWindowPrivate::polishItems() (qquickwindow.cpp:271) ==15748== by 0x5D02B7D: QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*) (qsgthreadedrenderloop.cpp:1150) ==15748== by 0x5D03167: QSGThreadedRenderLoop::event(QEvent*) (qsgthreadedrenderloop.cpp:1235) ==15748== by 0x6659CDC: QCoreApplication::notify(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66599D4: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66B00CC: QTimerInfoList::activateTimers() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66B03F0: ??? (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x8EE2E43: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE3087: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x8EE312B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4100.0) ==15748== by 0x66B06BB: QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x66578EA: QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x665EF45: QCoreApplication::exec() (in /usr/lib/x86_64-linux-gnu/libQt5Core.so.5.3.0) ==15748== by 0x40711B: startShell(int, char const**, void*) (main.cpp:171) ==15748== by 0x407A74: main (main.cpp:227) Change-Id: I2c7d38fa5a2566520173bff7ad4e5f9c966d083e Reviewed-by: Simon Hausmann <[email protected]>