Revision 313a74cc4a9a5d200b2059d3d8767fe1a274c50d authored by Simon Hausmann on 06 December 2013, 15:19:08 UTC, committed by The Qt Project on 06 December 2013, 16:38:26 UTC
Unfortunately the QObject destroyed callbacks for QtQml and QtDeclarative can't
be called in sequence, because if the QQmlData has the ownsMemory bit set, then
the destroyed callback will delete the QQmlData, and the sub-sequent call to
the destroyed callback of qml1 will try to dereference the QQmlData's first bit
(ownedByQml1), which is already destroyed.

This patch fixes that by simply sharing the assumption of the first bit
indicating module ownership (QtQml vs. QtDeclarative) also to qtbase and using
it to distinguish between which destroyed callback function to call.

Task-number: QTCREATORBUG-10273

Change-Id: I2773a31a3e9b3a1c22d1c1f33b2f29f3296cb3cf
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
1 parent 7972553
Raw File
LGPL_EXCEPTION.txt
Digia Qt LGPL Exception version 1.1

As an additional permission to the GNU Lesser General Public License version
2.1, the object code form of a "work that uses the Library" may incorporate
material from a header file that is part of the Library.  You may distribute
such object code under terms of your choice, provided that:
    (i)   the header files of the Library have not been modified; and 
    (ii)  the incorporated material is limited to numerical parameters, data
          structure layouts, accessors, macros, inline functions and
          templates; and
    (iii) you comply with the terms of Section 6 of the GNU Lesser General
          Public License version 2.1.

Moreover, you may apply this exception to a modified version of the Library,
provided that such modification does not involve copying material from the
Library into the modified Library's header files unless such material is
limited to (i) numerical parameters; (ii) data structure layouts;
(iii) accessors; and (iv) small macros, templates and inline functions of
five lines or less in length.

Furthermore, you are not required to apply this additional permission to a
modified version of the Library.
back to top