Summary: | New diagram type: Component Diagram | ||
---|---|---|---|
Product: | [Applications] umbrello | Reporter: | Jonathan Riddell <jr> |
Component: | general | Assignee: | Umbrello Development Group <umbrello-devel> |
Status: | RESOLVED FIXED | ||
Severity: | wishlist | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: | |||
Attachments: |
patch-1
patch-2 |
Description
Jonathan Riddell
2003-01-24 19:08:59 UTC
These require components, interfaces and possibly subsystems. Crash creating component diagram (hope this is the place for it). Steps to repeat: 1. Click on Diagram 2. Click on Component Diagram 3. Click on OK [New Thread 16384 (LWP 1987)] 0x40fbb8a7 in waitpid () from /lib/libpthread.so.0 #0 0x40fbb8a7 in waitpid () from /lib/libpthread.so.0 #1 0x406ed6fd in KCrash::defaultCrashHandler(int) () from /usr/lib/libkdecore.so.4 #2 0x40fba505 in __pthread_sighandler () from /lib/libpthread.so.0 #3 <signal handler called> #4 0x40b30b4d in QListViewItem::QListViewItem(QListViewItem*, QString, QString, QString, QString, QString, QString, QString, QString) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #5 0x0806cffd in UMLListViewItem::UMLListViewItem(UMLListViewItem*, QString, Uml::ListView_Type, int) () #6 0x0806eefd in UMLListView::slotDiagramCreated(int) () #7 0x08074be8 in UMLListView::qt_invoke(int, QUObject*) () #8 0x40a6cff0 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #9 0x40a6d155 in QObject::activate_signal(int, int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #10 0x0809d84a in UMLDoc::sigDiagramCreated(int) () #11 0x08096edd in UMLDoc::createDiagram(Uml::Diagram_Type, bool) () #12 0x080a3cb9 in UMLApp::slotComponentDiagram() () #13 0x080a7b2d in UMLApp::qt_invoke(int, QUObject*) () #14 0x40a6d079 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #15 0x40a6cf1d in QObject::activate_signal(int) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #16 0x404b0afb in KAction::activated() () from /usr/lib/libkdeui.so.4 #17 0x404a1f8f in KAction::slotActivated() () from /usr/lib/libkdeui.so.4 #18 0x404b0d01 in KAction::qt_invoke(int, QUObject*) () from /usr/lib/libkdeui.so.4 #19 0x40a6d079 in QObject::activate_signal(QConnectionList*, QUObject*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #20 0x40d4c402 in QSignal::signal(QVariant const&) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #21 0x40a87108 in QSignal::activate() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #22 0x40b5992d in QPopupMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #23 0x40aa0fbc in QWidget::event(QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #24 0x40a0eed4 in QApplication::internalNotify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #25 0x40a0e703 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #26 0x40682139 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdecore.so.4 #27 0x409b4d5d in QETWidget::translateMouseEvent(_XEvent const*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #28 0x409b2cbf in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #29 0x409c7bba in QEventLoop::processEvents(unsigned) () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #30 0x40a22ca6 in QEventLoop::enterLoop() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #31 0x40a22b48 in QEventLoop::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #32 0x40a0f101 in QApplication::exec() () from /usr/lib/qt-3.1/lib/libqt-mt.so.3 #33 0x080b360f in main () #34 0x4110c867 in __libc_start_main () from /lib/libc.so.6 Subject: Re: [Uml-devel] kdesdk/umbrello/umbrello An important hint would have been, that you tried this after loading an (old) document. Suggested patch attached. There were several problems. 1) UMLListView::init() is called multiple times during the lifetime of the UMLListView instance, which produced a memory leak and some connect()s accumulating. 2) The default listview items ("Logical View", "Use Case View", etc.) were created and destroyed at several places in the code. However they were not guaranteed to be created at all times (but being relied on all the time). The deleteChildrenOf() calls could be factored out into a clear() method, cleaning up the view (cleaning up everything, but not destroying, or at least recreating the default items). Please test/review. Cheers Carsten Pfeiffer -----BEGIN PGP SIGNATURE----- iQEVAwUBPmVYk6WgYMJuwmZtAQHKZgf/SEgbL2SNOJBCQ9rfcehBXnpmQIjXr8tk W+GkZwBgRPc5AYzOlA8QOEVoKCbn7jykxVCtemsmuUrKkcBNea7AfY0ck3Fnv5U/ fCMaao8OiJToPWZVwFCNjF4XDFi+zNALhMPGaPY6kuNM0JzFpRWe39E6IksbwCUh XloKgFJQokOT21acN3teGJC8YfQPc/ckkXFVjNRVLxqlaCSN84mzQsRTiCV3wbYP dZ9vPhQWrLacmmT/LmPvtzI159uOy1ofPG1qypKYpFX9QhNMG08lOlfU0hI6/hMD yYoK8TV4PK5RqmA+iDZIqsXZU76DCVJu5A8cT/3PZO4XcFmSokz/tQ== =2/LJ -----END PGP SIGNATURE----- Created an attachment (id=1106) patch-1 The patch did not apply totally cleanly to a fresh CVS copy. This function was the area where the patch failed. Is this function correct? void UMLListView::init() { deleteChildrenOf( ucv ); deleteChildrenOf( lv ); deleteChildrenOf( componentView ); rv->setOpen(true); ucv->setOpen(true); lv->setOpen(true); componentView->setOpen(true); //setup misc. delete menu; menu = 0; m_bStartedCut = false; loading = false; m_bIgnoreCancelRename = true; } Subject: Re: [Uml-devel] kdesdk/umbrello/umbrello On Wednesday 05 March 2003 16:33, you wrote: Here's an updated patch against current CVS. Cheers Carsten Pfeiffer -----BEGIN PGP SIGNATURE----- iQEVAwUBPmZ+vaWgYMJuwmZtAQGDbgf/TmeEc1eB9qF1PB95fMkb8YjPZrdxxQFM Gz1D3Cjrgza3EIY2AN7QgiH09MTgXo2IH2oNPSTbzW4/ADpzjBjy+zzIG2NcUo4T rBOil4b72Zb8uTCLm0c13xe+QaRuu2PMsA4jM3cLgyFeHiqcdHik56kbZbvSb/9h 4kJBzLDJHFVdn1tYXO0fz0eiBZR91Gs94QSPpggKurPmUYB8MioBgY/oPBdIzsU/ nZqqzRf/aliasONcrbyZFnRNXOsYK/5i86xZnrmQYlyxaRT+8TkOkqaEtfcimN0Y ck+nfsRtbSfV2hY1tlQNMZuEn3xL9lFuRztJKiqnKeNK6rVRPbRmWQ== =paOi -----END PGP SIGNATURE----- Created an attachment (id=1109) patch-2 I applied the patch above along with this fix to get umbrello to compile. It works now. Cool! Index: diagram/widgetfactory.cpp =================================================================== RCS file: /home/kde/kdesdk/umbrello/umbrello/diagram/widgetfactory.cpp,v retrieving revision 1.1 diff -U2 -r1.1 widgetfactory.cpp --- diagram/widgetfactory.cpp 5 Mar 2003 23:09:29 -0000 1.1 +++ diagram/widgetfactory.cpp 6 Mar 2003 00:23:35 -0000 @@ -27,4 +27,5 @@ +using namespace std; *** Bug has been marked as fixed ***. |