From b5db46864e641a86d9b8bdda8c77834fc49e558a Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Tue, 31 Jan 2012 11:42:41 +0100 Subject: [PATCH] QmlProfiler: profiling binding loops Moved the trace call in bindings so that they are also registered when binding loops occur. Change-Id: I56aa7bda6c5305f14dee98bebd929fb720f1ab32 Reviewed-by: Kai Koehne --- src/declarative/qml/v4/qv4bindings.cpp | 4 ++-- src/declarative/qml/v8/qv8bindings.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/declarative/qml/v4/qv4bindings.cpp b/src/declarative/qml/v4/qv4bindings.cpp index ec7699a..a1f4593 100644 --- a/src/declarative/qml/v4/qv4bindings.cpp +++ b/src/declarative/qml/v4/qv4bindings.cpp @@ -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); diff --git a/src/declarative/qml/v8/qv8bindings.cpp b/src/declarative/qml/v8/qv8bindings.cpp index 112808c..84ed892 100644 --- a/src/declarative/qml/v8/qv8bindings.cpp +++ b/src/declarative/qml/v8/qv8bindings.cpp @@ -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); -- 2.7.4