diff options
author | Jochen Becher <jochen_becher@gmx.de> | 2017-07-25 22:35:42 +0200 |
---|---|---|
committer | Jochen Becher <jochen_becher@gmx.de> | 2017-07-26 15:59:30 +0000 |
commit | 4b3acf03fbfcd4a181f2bd0b10435efccae0ebe5 (patch) | |
tree | 3e1cd0a69461e934c403817ea5d17e6c8586e226 | |
parent | 336f54def454e83ac34a946dcda448615a6453d8 (diff) | |
download | qt-creator-4b3acf03fbfcd4a181f2bd0b10435efccae0ebe5.tar.gz |
ModelEditor: Fix a crash moving packages into itself
Change-Id: I1a722b9514ee0a57d8bd8be2f4ea05ed87c6686d
Task-number: QTCREATORBUG-18262
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
-rw-r--r-- | src/libs/modelinglib/qmt/model_controller/modelcontroller.cpp | 7 |
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(); |