From 106513223d9433bcb062e6dc6ec2c52fe7083a28 Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Fri, 11 Mar 2011 10:18:42 +0100 Subject: [PATCH] QmlJS: Fix infinite loop for objects that are attached to themselves. --- src/libs/qmljs/qmljsinterpreter.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/libs/qmljs/qmljsinterpreter.cpp b/src/libs/qmljs/qmljsinterpreter.cpp index c9e1c52833..b3f11d2b20 100644 --- a/src/libs/qmljs/qmljsinterpreter.cpp +++ b/src/libs/qmljs/qmljsinterpreter.cpp @@ -2114,9 +2114,11 @@ void CppQmlTypes::setPrototypes(QmlObjectValue *object) FakeMetaObject::ConstPtr fmo = object->metaObject(); // resolve attached type - if (!fmo->attachedTypeName().isEmpty()) { + // don't do it if the attached type name is the object itself (happens for QDeclarativeKeysAttached) + if (!fmo->attachedTypeName().isEmpty() + && fmo->className() != fmo->attachedTypeName()) { QmlObjectValue *attachedObject = typeByCppName(fmo->attachedTypeName()); - if (attachedObject) + if (attachedObject && attachedObject != object) object->setAttachedType(attachedObject); } -- 2.11.0