aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/util/qdeclarativebind.cpp
diff options
context:
space:
mode:
authorMichael Brasser <michael.brasser@nokia.com>2011-08-01 12:32:10 +1000
committerQt by Nokia <qt-info@nokia.com>2011-08-01 04:49:54 +0200
commitf609c2f3b148f0d31167b9feeabe8f2c4bbd03b8 (patch)
tree3c9ce26ae840c75a98ddff81cf4b766a566abf66 /src/declarative/util/qdeclarativebind.cpp
parent9bc7e70c00736678d1430190566d2575c2ec764a (diff)
Fix Binding to correctly restore bindings even when a binding loop is involved.
Change-Id: Ie8f9731d9f4834d8b94272ef792dc7ad0235ce78 Reviewed-on: http://codereview.qt.nokia.com/2409 Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative/util/qdeclarativebind.cpp')
-rw-r--r--src/declarative/util/qdeclarativebind.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/declarative/util/qdeclarativebind.cpp b/src/declarative/util/qdeclarativebind.cpp
index 726adf96d4..fa463ebef8 100644
--- a/src/declarative/util/qdeclarativebind.cpp
+++ b/src/declarative/util/qdeclarativebind.cpp
@@ -280,11 +280,11 @@ void QDeclarativeBind::eval()
if (!d->when) {
//restore any previous binding
if (d->prevBind) {
- QDeclarativeAbstractBinding *tmp;
- tmp = QDeclarativePropertyPrivate::setBinding(d->prop, d->prevBind);
+ QDeclarativeAbstractBinding *tmp = d->prevBind;
+ d->prevBind = 0;
+ tmp = QDeclarativePropertyPrivate::setBinding(d->prop, tmp);
if (tmp) //should this ever be true?
tmp->destroy();
- d->prevBind = 0;
}
return;
}