From: Christiaan Janssen Date: Tue, 31 Jan 2012 10:42:41 +0000 (+0100) Subject: QmlProfiler: profiling binding loops X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=b5db46864e641a86d9b8bdda8c77834fc49e558a;p=konrad%2Fqtdeclarative.git 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 --- 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);