aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/qml/qqmlengine.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/qml/qqmlengine.cpp')
-rw-r--r--src/qml/qml/qqmlengine.cpp10
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);