summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-11-23 09:48:31 +0100
committerLiang Qi <liang.qi@qt.io>2017-11-23 09:48:31 +0100
commit23e97360bdc1327ab1b3b3c7e7db69a7c56ef1e0 (patch)
treea58b73afe7893772b700507596eaded6f83544ba
parenta79feeee451bcf28673292555795677a789e8513 (diff)
parent08778586413adad7b3af35c7cb97416757d599c0 (diff)
Merge remote-tracking branch 'origin/5.9.3' into 5.9
-rw-r--r--dist/changes-5.9.373
-rw-r--r--src/qml/qml/qqmltypeloader.cpp10
-rw-r--r--src/qml/types/qqmldelegatemodel.cpp2
-rw-r--r--src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp9
4 files changed, 89 insertions, 5 deletions
diff --git a/dist/changes-5.9.3 b/dist/changes-5.9.3
new file mode 100644
index 0000000000..825941df23
--- /dev/null
+++ b/dist/changes-5.9.3
@@ -0,0 +1,73 @@
+Qt 5.9.3 is a bug-fix release. It maintains both forward and backward
+compatibility (source and binary) with Qt 5.9.0.
+
+For more details, refer to the online documentation included in this
+distribution. The documentation is also available online:
+
+http://doc.qt.io/qt-5/index.html
+
+The Qt version 5.9 series is binary compatible with the 5.8.x series.
+Applications compiled for 5.8 will continue to run with 5.9.
+
+Some of the changes listed in this file include issue tracking numbers
+corresponding to tasks in the Qt Bug Tracker:
+
+https://bugreports.qt.io/
+
+Each of these identifiers can be entered in the bug tracker to obtain more
+information about a particular change.
+
+****************************************************************************
+* Qt 5.9.3 Changes *
+****************************************************************************
+
+QtQml
+-----
+
+ - [QTBUG-63464] Fix Number.isNaN() returning incorrect values with some
+ glibc versions.
+ - [QTBUG-52515] Qt.platform.os returns "qnx" when running on QNX
+ platforms.
+ - [QTBUG-63200] Deferred property assignments in inner contexts are now
+ executed properly
+ - [QTBUG-63733] Fixed a crash during object deletion due to a dangling
+ pointer
+ - [QTBUG-64017] Fixed a circular dependency problem which caused a
+ failure when using QML singletons
+
+QtQuick
+-------
+
+ - Global:
+ * [QTBUG-61679] Input method events now work in QQuickWidget
+ * Loader and Flickable use setSize() to resize the inner Item in one
+ transaction rather than setting width and height separately.
+ This makes the state consistent by the time the change signals are emitted.
+ * Optimized rendering of opaque pixmaps, 9-patches and layers in the
+ software renderer
+ * [QTBUG-61434] Fixed a crash on exit by ensuring that a PointerEvent
+ instance is created only in response to an actual incoming event,
+ not because of checking the mouseGrabberItem at shutdown, and by
+ explicitly destroying the instances at the right time.
+
+ - QQuickWidget:
+ * [QTBUG-61798] QQuickWidget is repainted properly when moving between
+ screens
+ * [QTBUG-45557] Mouse enter and leave events are now correctly forwarded
+ to MouseAreas inside a QQuickWidget
+
+ - Item Views:
+ * [QTBUG-62607] Fixed a crash and a memory leak related to moving Items
+ in Item Views
+ * [QTBUG-57225][QTBUG-57225] GridView's removeDisplaced animation
+ occurs reliably and at the right time
+ * [QTBUG-61269][QTBUG-62864] Changes in a ListView's model no longer
+ disrupt the movement of an animated highlight item
+ * [QTBUG-34576] ListView's calculated velocity remains correct during
+ index-based scrolling
+ * [QTBUG-63974] ListView.positionViewAtIndex now works correctly
+ in the presence of sticky headers and footers
+
+ - Platform Specific Changes:
+ * [QTBUG-63835] iOS selection handles are shown properly when selecting
+ all text in a TextEdit
diff --git a/src/qml/qml/qqmltypeloader.cpp b/src/qml/qml/qqmltypeloader.cpp
index 1a7b8250e7..f3077f673b 100644
--- a/src/qml/qml/qqmltypeloader.cpp
+++ b/src/qml/qml/qqmltypeloader.cpp
@@ -2427,7 +2427,15 @@ void QQmlTypeData::dataReceived(const SourceCodeData &data)
void QQmlTypeData::initializeFromCachedUnit(const QQmlPrivate::CachedQmlUnit *unit)
{
m_document.reset(new QmlIR::Document(isDebugging()));
- unit->loadIR(m_document.data(), unit);
+ if (unit->loadIR) {
+ // old code path for older generated code
+ unit->loadIR(m_document.data(), unit);
+ } else {
+ // new code path
+ QmlIR::IRLoader loader(unit->qmlData, m_document.data());
+ loader.load();
+ m_document->javaScriptCompilationUnit.adopt(unit->createCompilationUnit());
+ }
continueLoadFromIR();
}
diff --git a/src/qml/types/qqmldelegatemodel.cpp b/src/qml/types/qqmldelegatemodel.cpp
index 26e6a81418..e3906f2a7e 100644
--- a/src/qml/types/qqmldelegatemodel.cpp
+++ b/src/qml/types/qqmldelegatemodel.cpp
@@ -1979,6 +1979,8 @@ void QQmlDelegateModelItem::destroyObject()
Q_ASSERT(data);
if (data->ownContext) {
data->ownContext->clearContext();
+ if (data->ownContext->contextObject == object)
+ data->ownContext->contextObject = nullptr;
data->ownContext = 0;
data->context = 0;
}
diff --git a/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp b/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp
index 10291b9cb5..8843b6450a 100644
--- a/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp
+++ b/src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp
@@ -490,12 +490,13 @@ QRectF QSGSoftwareInternalImageNode::rect() const
const QPixmap &QSGSoftwareInternalImageNode::pixmap() const
{
- if (QSGSoftwarePixmapTexture *pt = qobject_cast<QSGSoftwarePixmapTexture*>(m_texture)) {
+ if (QSGSoftwarePixmapTexture *pt = qobject_cast<QSGSoftwarePixmapTexture*>(m_texture))
return pt->pixmap();
- } else {
- QSGSoftwareLayer *layer = qobject_cast<QSGSoftwareLayer*>(m_texture);
+ if (QSGSoftwareLayer *layer = qobject_cast<QSGSoftwareLayer*>(m_texture))
return layer->pixmap();
- }
+ Q_ASSERT(m_texture == 0);
+ static const QPixmap nullPixmap;
+ return nullPixmap;
}
QT_END_NAMESPACE