diff options
-rw-r--r-- | dist/changes-5.9.3 | 73 | ||||
-rw-r--r-- | src/qml/qml/qqmltypeloader.cpp | 10 | ||||
-rw-r--r-- | src/qml/types/qqmldelegatemodel.cpp | 2 | ||||
-rw-r--r-- | src/quick/scenegraph/adaptations/software/qsgsoftwareinternalimagenode.cpp | 9 |
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 8e9f57f661..128e37d51b 100644 --- a/src/qml/qml/qqmltypeloader.cpp +++ b/src/qml/qml/qqmltypeloader.cpp @@ -2409,7 +2409,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 4d2a9746c3..4ee1ab1b76 100644 --- a/src/qml/types/qqmldelegatemodel.cpp +++ b/src/qml/types/qqmldelegatemodel.cpp @@ -1957,6 +1957,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 |