summaryrefslogtreecommitdiff
path: root/src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp')
-rw-r--r--src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp7
1 files changed, 7 insertions, 0 deletions
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();