summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/declarative/qml/qmlmetaproperty.cpp3
-rw-r--r--src/declarative/util/qmlstate.cpp6
-rw-r--r--src/declarative/util/qmltransitionmanager.cpp2
3 files changed, 7 insertions, 4 deletions
diff --git a/src/declarative/qml/qmlmetaproperty.cpp b/src/declarative/qml/qmlmetaproperty.cpp
index 9c7aff8..a315141 100644
--- a/src/declarative/qml/qmlmetaproperty.cpp
+++ b/src/declarative/qml/qmlmetaproperty.cpp
@@ -549,7 +549,8 @@ QmlAbstractBinding *
QmlMetaProperty::setBinding(QmlAbstractBinding *newBinding, QmlMetaProperty::WriteFlags flags) const
{
if (!isProperty() || (type() & Attached) || !d->object) {
- delete newBinding;
+ if (newBinding)
+ newBinding->destroy();
return 0;
}
diff --git a/src/declarative/util/qmlstate.cpp b/src/declarative/util/qmlstate.cpp
index 1749c3a..c2201a6 100644
--- a/src/declarative/util/qmlstate.cpp
+++ b/src/declarative/util/qmlstate.cpp
@@ -320,7 +320,7 @@ void Action::deleteFromBinding()
{
if (fromBinding) {
property.setBinding(0);
- delete fromBinding;
+ fromBinding->destroy();
fromBinding = 0;
}
}
@@ -419,7 +419,9 @@ void QmlState::apply(QmlStateGroup *group, QmlTransition *trans, QmlState *rever
}
if (!found) {
QVariant cur = d->revertList.at(ii).property.read();
- delete d->revertList.at(ii).property.setBinding(0);
+ QmlAbstractBinding *delBinding = d->revertList.at(ii).property.setBinding(0);
+ if (delBinding)
+ delBinding->destroy();
Action a;
a.property = d->revertList.at(ii).property;
diff --git a/src/declarative/util/qmltransitionmanager.cpp b/src/declarative/util/qmltransitionmanager.cpp
index 8ae5785..5527fe5 100644
--- a/src/declarative/util/qmltransitionmanager.cpp
+++ b/src/declarative/util/qmltransitionmanager.cpp
@@ -254,7 +254,7 @@ void QmlTransitionManager::cancel()
Action action = d->bindingsList[i];
if (action.toBinding && action.deletableToBinding) {
action.property.setBinding(0);
- delete action.toBinding;
+ action.toBinding->destroy();
action.toBinding = 0;
action.deletableToBinding = false;
} else if (action.event) {