From 379342c64db71745edb2bf9a9a100fd1798dbf69 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 10 Apr 2015 14:22:58 +0200 Subject: Speed up copying of value types in bindings When a binding results in a value type reference and the destination property is of the same time, then we can avoid a heap allocation and just allocate the value type memory on the stack, construct, copy and destruct. Change-Id: If71ef82b0ced85c1b962c5e44147d6c07edd1440 Reviewed-by: Lars Knoll --- src/qml/qml/qqmlproperty.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/qml/qml/qqmlproperty.cpp') diff --git a/src/qml/qml/qqmlproperty.cpp b/src/qml/qml/qqmlproperty.cpp index 931adb9a13..ae452b727e 100644 --- a/src/qml/qml/qqmlproperty.cpp +++ b/src/qml/qml/qqmlproperty.cpp @@ -53,6 +53,7 @@ #include #include +#include #include Q_DECLARE_METATYPE(QList) @@ -1519,6 +1520,11 @@ bool QQmlPropertyPrivate::writeBinding(QObject *object, QUICK_STORE(QString, result.toQStringNoThrow()) break; default: + if (const QV4::QQmlValueTypeWrapper *vtw = result.as()) { + if (vtw->d()->valueType->typeId == core.propType) { + return vtw->write(object, core.coreIndex); + } + } break; } } -- cgit v1.2.3