[Uml-devel] [Bug 268469] Umbrello crashed when changing the Package of a class

Ralf Habacker ralf.habacker at freenet.de
Thu Dec 8 13:52:19 UTC 2011


https://bugs.kde.org/show_bug.cgi?id=268469


Ralf Habacker <ralf.habacker at freenet.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




--- Comment #5 from Ralf Habacker <ralf habacker freenet de>  2011-12-08 13:52:19 ---
Here is was happens behind the scene 

     Qt3Supportd4.dll!Q3ListViewItem::~Q3ListViewItem()  Zeile 913    C++
     umbrello.exe!UMLListViewItem::~UMLListViewItem()  Zeile 175 + 0x45 Bytes  
 C++
     umbrello.exe!UMLListViewItem::`scalar deleting destructor'()  + 0x16 Bytes
   C++
>	umbrello.exe!UMLListView::moveObject(std::basic_string<char,std::char_traits<char>,std::allocator<char> > srcId, UMLListViewItem::ListViewType srcType, UMLListViewItem * newParent)  Zeile 1656 + 0x34 Bytes	C++
     umbrello.exe!Model_Utils::treeViewMoveObjectTo(UMLObject * container,
UMLObject * object)  Zeile 323    C++
     umbrello.exe!ClassGenPage::updateObject()  Zeile 434 + 0x10 Bytes    C++
     umbrello.exe!ClassPropDlg::slotApply()  Zeile 170    C++
     umbrello.exe!ClassPropDlg::slotOk()  Zeile 159    C++
     umbrello.exe!ClassPropDlg::qt_metacall(QMetaObject::Call _c, int _id, void
* * _a)  Zeile 73 + 0x8 Bytes    C++
     QtCored4.dll!QMetaObject::metacall(QObject * object, QMetaObject::Call cl,
int idx, void * * argv)  Zeile 238    C++
     QtCored4.dll!QMetaObject::activate(QObject * sender, const QMetaObject *
m, int local_signal_index, void * * argv)  Zeile 3280 + 0x27 Bytes    C++
     kdeui.dll!KDialog::okClicked()  Zeile 258 + 0x15 Bytes    C++
     kdeui.dll!KDialog::slotButtonClicked(int button)  Zeile 885    C++
     kdeui.dll!KDialog::qt_metacall(QMetaObject::Call _c, int _id, void * * _a)
 Zeile 190 + 0x1b Bytes    C++
     kdeui.dll!KPageDialog::qt_metacall(QMetaObject::Call _c, int _id, void * *
_a)  Zeile 70 + 0x14 Bytes    C++
     umbrello.exe!ClassPropDlg::qt_metacall(QMetaObject::Call _c, int _id, void
* * _a)  Zeile 68 + 0x17 Bytes    C++

After pressing "ok" in the property dialog the widget is going to be moved to
the other package, which is handled in 

>	umbrello.exe!UMLListView::moveObject(std::basic_string<char,std::char_traits<char>,std::allocator<char> > srcId, 

In fact a new widget is created and the old one deleted  

    case UMLListViewItem::lvt_Datatype:
        if (newParentType == UMLListViewItem::lvt_Logical_Folder ||
                newParentType == UMLListViewItem::lvt_Datatype_Folder ||
                newParentType == UMLListViewItem::lvt_Logical_View ||
                newParentType == UMLListViewItem::lvt_Class ||
                newParentType == UMLListViewItem::lvt_Interface ||
                newParentType == UMLListViewItem::lvt_Package) {
            newItem = move->deepCopy(newParent);
            if (m_doc->loading())         // deletion is not safe while loading
                move->setVisible(false);  // (the <listview> XMI may be
corrupted)
            else
!               delete move;

which means that 'temp' the current list view item is destroyed.

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the umbrello-devel mailing list