From 4b3acf03fbfcd4a181f2bd0b10435efccae0ebe5 Mon Sep 17 00:00:00 2001 From: Jochen Becher Date: Tue, 25 Jul 2017 22:35:42 +0200 Subject: ModelEditor: Fix a crash moving packages into itself Change-Id: I1a722b9514ee0a57d8bd8be2f4ea05ed87c6686d Task-number: QTCREATORBUG-18262 Reviewed-by: Tobias Hunger --- src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp') diff --git a/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp b/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp index 2b940f012a..9257e149b3 100644 --- a/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp +++ b/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp @@ -756,6 +756,13 @@ void ModelController::moveObject(MPackage *newOwner, MObject *object) QMT_CHECK(object); QMT_CHECK(object != m_rootPackage); + // verify that newOwner is not a child of object + MObject *newOwnerObject = newOwner; + while (newOwnerObject && newOwnerObject != object) + newOwnerObject = newOwnerObject->owner(); + if (newOwnerObject == object) + return; + if (newOwner != object->owner()) { int formerRow = 0; MObject *formerOwner = object->owner(); -- cgit v1.2.1