QmlProfiler: profiling binding loops
authorChristiaan Janssen <christiaan.janssen@nokia.com>
Tue, 31 Jan 2012 10:42:41 +0000 (11:42 +0100)
committerQt by Nokia <qt-info@nokia.com>
Wed, 1 Feb 2012 06:02:35 +0000 (07:02 +0100)
Moved the trace call in bindings so that they are also
registered when binding loops occur.

Change-Id: I56aa7bda6c5305f14dee98bebd929fb720f1ab32
Reviewed-by: Kai Koehne <kai.koehne@nokia.com>

src/declarative/qml/v4/qv4bindings.cpp
src/declarative/qml/v8/qv8bindings.cpp

index ec7699a..a1f4593 100644 (file)
@@ -289,6 +289,8 @@ void QV4Bindings::run(Binding *binding, QDeclarativePropertyPrivate::WriteFlags
     trace.addDetail("Line", binding->line);
     trace.addDetail("Column", binding->column);
 
+    QDeclarativeBindingProfiler prof(context->url.toString(), binding->line, binding->column);
+
     if (binding->updating) {
         QString name;
         if (binding->property & 0xFFFF0000) {
@@ -307,8 +309,6 @@ void QV4Bindings::run(Binding *binding, QDeclarativePropertyPrivate::WriteFlags
         return;
     }
 
-    QDeclarativeBindingProfiler prof(context->url.toString(), binding->line, binding->column);
-
     binding->updating = true;
     if (binding->property & 0xFFFF0000) {
         QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(context->engine);
index 112808c..84ed892 100644 (file)
@@ -82,12 +82,13 @@ void QV8Bindings::Binding::update(QDeclarativePropertyPrivate::WriteFlags flags)
     trace.addDetail("Line", line);
     trace.addDetail("Column", column);
 
+    QDeclarativeBindingProfiler prof(parent->url.toString(), line, column);
+
     QDeclarativeContextData *context = QDeclarativeAbstractExpression::context();
     if (!context || !context->isValid())
         return;
 
     if (!updating) {
-        QDeclarativeBindingProfiler prof(parent->url.toString(), line, column);
         updating = true;
         QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(context->engine);