diff options
Diffstat (limited to 'src/qml/qml/qqmlengine.cpp')
-rw-r--r-- | src/qml/qml/qqmlengine.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/qml/qml/qqmlengine.cpp b/src/qml/qml/qqmlengine.cpp index 3d09ebb83f..c926a8ed42 100644 --- a/src/qml/qml/qqmlengine.cpp +++ b/src/qml/qml/qqmlengine.cpp @@ -71,6 +71,7 @@ #include <private/qdebugmessageservice_p.h> #include "qqmlincubator.h" #include <private/qv8profilerservice_p.h> +#include <private/qqmlboundsignal_p.h> #include <QtCore/qstandardpaths.h> #include <QtCore/qsettings.h> @@ -1164,6 +1165,15 @@ void QQmlData::destroyed(QObject *object) binding = next; } + QQmlAbstractBoundSignal *signalHandler = signalHandlers; + while (signalHandler) { + QQmlAbstractBoundSignal *next = signalHandler->m_nextSignal; + signalHandler->m_prevSignal = 0; + signalHandler->m_nextSignal = 0; + delete signalHandler; + signalHandler = next; + } + if (bindingBits) free(bindingBits); |