From 1178d3d62008873d7e8ce28e1671dd6c2b43b581 Mon Sep 17 00:00:00 2001 From: Michael Brasser Date: Thu, 17 Dec 2009 12:02:58 +1000 Subject: Use destroy() to destroy bindings. --- src/declarative/qml/qmlmetaproperty.cpp | 3 ++- src/declarative/util/qmlstate.cpp | 6 ++++-- src/declarative/util/qmltransitionmanager.cpp | 2 +- 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) { -- cgit v0.12