Qt 5.9.1 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.1 Changes                           *
****************************************************************************

QtQml
-----

 - Fixed the QML Connections element ignoring the initial state of the
   enabled property.

 - Fixed QML crashes on big endian systems.

 - Fixed memory leak in QQmlExpression.


 - Various performance and memory consumption improvements
    - Make sure the garbage collector returns completely free memory blocks
      to the operating system.
    - Reduce size of JavaScript objects
    - Optimize JS property storage to make better use of the available
      memory
    - Reduce the size of the generated byte code when using the bytecode
      interpreter
    - Reduce memory usage of the JIT by creating more compact code
    - Optimize code generation for JS expressions of type 'foo[bar]'

 - Applied workaround for miscompilation with gcc 5.

 - Fixed some cases where qml cache files would be ignored

 - Don't generate QML cache files ahead of time on Android, as it causes
   problems on some phones.


QtQuick
-------

 - QQuickItemView:
   * [QTBUG-48394][QTBUG-61294] Fixed a crash that could occur with bindings
     to contentItem.children or contentItem.childrenRect.

 - QQuickView:
   * Set the window's contentItem as the QObject-parent of the rootObject
     to ensure consistent behavior for calling findChildren() on
     QQuickWindow::contentItem and QQuickView::rootObject.

- QQuickWidget:
  * [QTBUG-60985] Fixed rendering in QMdiArea when using the software
    rendererer.
  * [QTBUG-60988] Fixed the delivery of shortcut override events.

 - QQuickWindow:
   * Set the window as the QObject-parent of the contentItem to ensure
     consistent behavior for calling findChildren() on QQuickWindow and
     QQuickWindow::contentItem.

QuickTest
---------

 - TestCase:
   * [QTBUG-61297] Fixed compare() for URL objects.
   * [QTBUG-32555] Made compare() print out dates' milliseconds to make it
     possible to see why a comparison of two dates fails when only their
     milliseconds differ.
