[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-bugs-dist
Subject:    [Bug 145047] konqueror random crashes - file manager mode
From:       Martin Koller <m.koller () surfeu ! at>
Date:       2007-05-06 14:00:44
Message-ID: 20070506140044.22096.qmail () ktown ! kde ! org
[Download RAW message or body]

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
         
http://bugs.kde.org/show_bug.cgi?id=145047         
m.koller surfeu at changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
      everconfirmed|0                           |1



------- Additional Comments From m.koller surfeu at  2007-05-06 16:00 -------
I can reproduce it: I look at /tmp and press reload a few times (selecting some items \
inbetween, changing from treeView to iconView mode)...

Running this in valgrind reveals, that it might be due to the fact that the \
MetabarWidget contains a member currentItems which does (line 189)  currentItems = \
new KFileItemList(items); which produces a shallow copy of the item list (only \
pointers are copied). And at some point kdirlistercache is deleting the KFileItem but \
currentItems still points to it ...

See the following valgrind log:

==12416== Invalid read of size 1
==12416==    at 0x409D7E7: KURL::isValid() const (kurl.h:816)
==12416==    by 0xAC663FA: MetabarWidget::setFileItems(QPtrList<KFileItem> const&, \
bool) (metabarwidget.cpp:176) ==12416==    by 0xAC64223: \
Metabar::handlePreview(QPtrList<KFileItem> const&) (metabar.cpp:35) ==12416==    by \
0x7B2EEC2: KonqSidebarPlugin::openPreview(QPtrList<KFileItem> const&) \
(konqsidebarplugin.cpp:40) ==12416==    by 0x7B2F33F: \
KonqSidebarPlugin::qt_invoke(int, QUObject*) (konqsidebarplugin.moc:167) ==12416==    \
by 0xAC64552: Metabar::qt_invoke(int, QUObject*) (metabar.moc:77) ==12416==    by \
0x4E50659: QObject::activate_signal(QConnectionList*, QUObject*) (in \
/home/pvss/workspace/ExternLibs/Qt/lib/libqt-mt.so.3) ==12416==    by 0x93B2992: \
Sidebar_Widget::fileSelection(QPtrList<KFileItem> const&) (sidebar_widget.moc:449) \
==12416==    by 0x93B2A0B: Sidebar_Widget::customEvent(QCustomEvent*) \
(sidebar_widget.cpp:1244) ==12416==    by 0x4E4E415: QObject::event(QEvent*) (in \
/home/pvss/workspace/ExternLibs/Qt/lib/libqt-mt.so.3) ==12416==    by 0x4E7E9B1: \
QWidget::event(QEvent*) (in /home/pvss/workspace/ExternLibs/Qt/lib/libqt-mt.so.3) \
==12416==    by 0x4DFDEA8: QApplication::internalNotify(QObject*, QEvent*) (in \
/home/pvss/workspace/ExternLibs/Qt/lib/libqt-mt.so.3) ==12416==  Address 0x6405CF4 is \
36 bytes inside a block of size 124 free'd ==12416==    at 0x401D20C: operator \
delete(void*) (vg_replace_malloc.c:246) ==12416==    by 0x446B9CC: \
KFileItem::~KFileItem() (kfileitem.cpp:125) ==12416==    by 0x409DB1D: \
QPtrList<KFileItem>::deleteItem(void*) (qptrlist.h:150) ==12416==    by 0x50B3E0E: \
QGList::clear() (in /home/pvss/workspace/ExternLibs/Qt/lib/libqt-mt.so.3) ==12416==   \
by 0x409E99B: QPtrList<KFileItem>::clear() (qptrlist.h:93) ==12416==    by 0x409E9D7: \
QPtrList<KFileItem>::~QPtrList() (qptrlist.h:70) ==12416==    by 0x447F7B2: \
KDirListerCache::DirItem::~DirItem() (kdirlister_p.h:250) ==12416==    by 0x447F839: \
QCache<KDirListerCache::DirItem>::deleteItem(void*) (qcache.h:90) ==12416==    by \
0x50B0287: QGCache::remove_string(QString const&) (in \
/home/pvss/workspace/ExternLibs/Qt/lib/libqt-mt.so.3) ==12416==    by 0x447F31F: \
QCache<KDirListerCache::DirItem>::remove(QString const&) (qcache.h:70) ==12416==    \
by 0x447A759: KDirListerCache::listDir(KDirLister*, KURL const&, bool, bool) \
(kdirlister.cpp:210) ==12416==    by 0x447BC30: KDirLister::openURL(KURL const&, \
bool, bool) (kdirlister.cpp:1863) ==12416== 
=


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic