Bug 173454 - File dialog crashes when the file in focus is deleted
Summary: File dialog crashes when the file in focus is deleted
Status: RESOLVED FIXED
Alias: None
Product: kio
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: SVN
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: David Faure
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-10-24 18:38 UTC by András Manţia
Modified: 2008-11-29 02:46 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description András Manţia 2008-10-24 18:38:23 UTC
I could reproduce this with Konqueror trunk, but for whatever reason not with Kwrite.
Start Konqueror, CTRL-O to open the file dialog. Select a file there, but do not close the dialog. Switch to a terminal and rename/delete the file->crash. First happened in a form where I could select to upload a file.

Application: Konqueror (konqueror), signal SIGABRT
[?1034h[Thread debugging using libthread_db enabled]
0x00007f3de9898261 in nanosleep () from /lib64/libc.so.6

Thread 1 (Thread 0x7f3df0c29700 (LWP 29840)):
[KCrash Handler]
#5  0x00007f3de98285c5 in raise () from /lib64/libc.so.6
#6  0x00007f3de9829bb3 in abort () from /lib64/libc.so.6
#7  0x00007f3ded3d9cdc in qt_message_output () from /opt/qt4/lib/libQtCore.so.4
#8  0x00007f3ded3d9deb in qFatal () from /opt/qt4/lib/libQtCore.so.4
#9  0x00007f3ded3d9e27 in qt_assert_x () from /opt/qt4/lib/libQtCore.so.4
#10 0x00007f3dec39f92f in QVector<int>::remove () from /opt/qt4/lib/libQtGui.so.4
#11 0x00007f3dec725421 in QSortFilterProxyModelPrivate::remove_proxy_interval () from /opt/qt4/lib/libQtGui.so.4
#12 0x00007f3dec7255f4 in QSortFilterProxyModelPrivate::remove_source_items () from /opt/qt4/lib/libQtGui.so.4
#13 0x00007f3dec726683 in QSortFilterProxyModelPrivate::source_items_about_to_be_removed () from /opt/qt4/lib/libQtGui.so.4
#14 0x00007f3dec72672b in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved () from /opt/qt4/lib/libQtGui.so.4
#15 0x00007f3dec7269aa in QSortFilterProxyModel::qt_metacall () from /opt/qt4/lib/libQtGui.so.4
#16 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#17 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#18 0x00007f3ded5600ff in QAbstractItemModel::rowsAboutToBeRemoved () from /opt/qt4/lib/libQtCore.so.4
#19 0x00007f3ded4f080f in QAbstractItemModel::beginRemoveRows () from /opt/qt4/lib/libQtCore.so.4
#20 0x00007f3defd1a7be in KDirModelPrivate::_k_slotDeleteItems (this=0x10fd020, items=@0x7ffff8c74ab0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirmodel.cpp:423
#21 0x00007f3defd1d2de in KDirModel::qt_metacall (this=0x10fe660, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c74a90)
    at /data/development/build/kde-trunk/kdelibs/kio/kdirmodel.moc:77
#22 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#23 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#24 0x00007f3defd01725 in KDirLister::itemsDeleted (this=0x7490, _t1=<value optimized out>) at /data/development/build/kde-trunk/kdelibs/kio/kdirlister.moc:277
#25 0x00007f3defd024d1 in KDirLister::Private::emitItemsDeleted (this=0x10fe4f0, _items=<value optimized out>) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:2322
#26 0x00007f3defd11aa8 in KDirListerCache::itemsDeleted (this=0x70c980, listers=<value optimized out>, deletedItems=@0x7ffff8c74b80)
    at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:1623
#27 0x00007f3defd11ced in KDirListerCache::deleteUnmarkedItems (this=0x70c980, listers=@0x7ffff8c74e50, lstItems=@0x12f6f60) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:1617
#28 0x00007f3defd1295b in KDirListerCache::slotUpdateResult (this=0x70c980, j=<value optimized out>) at /data/development/sources/kde-trunk/kdelibs/kio/kio/kdirlister.cpp:1553
#29 0x00007f3defd14b97 in KDirListerCache::qt_metacall (this=0x70c980, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c75080)
    at /data/development/build/kde-trunk/kdelibs/kio/kdirlister_p.moc:101
#30 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#31 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#32 0x00007f3dee51f2f2 in KJob::result (this=0x7490, _t1=0x13b99f0) at /data/development/build/kde-trunk/kdelibs/kdecore/kjob.moc:186
#33 0x00007f3dee51f6bf in KJob::emitResult (this=0x13b99f0) at /data/development/sources/kde-trunk/kdelibs/kdecore/jobs/kjob.cpp:294
#34 0x00007f3defce1c20 in KIO::SimpleJob::slotFinished (this=0x13b99f0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/job.cpp:489
#35 0x00007f3defce3e15 in KIO::ListJob::slotFinished (this=0x13b99f0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/job.cpp:2413
#36 0x00007f3defce807d in KIO::ListJob::qt_metacall (this=0x13b99f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c753e0)
    at /data/development/build/kde-trunk/kdelibs/kio/jobclasses.moc:747
#37 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#38 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#39 0x00007f3defda3ca1 in KIO::SlaveInterface::dispatch (this=0x84ae00, _cmd=104, rawdata=<value optimized out>) at /data/development/sources/kde-trunk/kdelibs/kio/kio/slaveinterface.cpp:175
#40 0x00007f3defda0758 in KIO::SlaveInterface::dispatch (this=0x84ae00) at /data/development/sources/kde-trunk/kdelibs/kio/kio/slaveinterface.cpp:91
#41 0x00007f3defd92923 in KIO::Slave::gotInput (this=0x84ae00) at /data/development/sources/kde-trunk/kdelibs/kio/kio/slave.cpp:322
#42 0x00007f3defd93958 in KIO::Slave::qt_metacall (this=0x84ae00, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x7ffff8c75880) at /data/development/build/kde-trunk/kdelibs/kio/slave.moc:75
#43 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#44 0x00007f3ded516015 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#45 0x00007f3defcae660 in KIO::ConnectionPrivate::dequeue (this=0x8381d0) at /data/development/sources/kde-trunk/kdelibs/kio/kio/connection.cpp:82
#46 0x00007f3defcae79a in KIO::Connection::qt_metacall (this=0xc979a0, _c=QMetaObject::InvokeMetaMethod, _id=0, _a=0x141e640) at /data/development/build/kde-trunk/kdelibs/kio/connection.moc:72
#47 0x00007f3ded50e1b1 in QMetaCallEvent::placeMetaCall () from /opt/qt4/lib/libQtCore.so.4
#48 0x00007f3ded513436 in QObject::event () from /opt/qt4/lib/libQtCore.so.4
#49 0x00007f3dec0c2817 in QApplicationPrivate::notify_helper () from /opt/qt4/lib/libQtGui.so.4
#50 0x00007f3dec0c2b33 in QApplication::notify () from /opt/qt4/lib/libQtGui.so.4
#51 0x00007f3def7f62db in KApplication::notify (this=0x7ffff8c78e80, receiver=0xc979a0, event=0x14ca880) at /data/development/sources/kde-trunk/kdelibs/kdeui/kernel/kapplication.cpp:307
#52 0x00007f3ded4fc4c8 in QCoreApplication::notifyInternal () from /opt/qt4/lib/libQtCore.so.4
#53 0x00007f3ded5011b1 in QCoreApplication::sendEvent () from /opt/qt4/lib/libQtCore.so.4
#54 0x00007f3ded4fcb2b in QCoreApplicationPrivate::sendPostedEvents () from /opt/qt4/lib/libQtCore.so.4
#55 0x00007f3ded4fce3a in QCoreApplication::sendPostedEvents () from /opt/qt4/lib/libQtCore.so.4
#56 0x00007f3ded534ef7 in QCoreApplication::sendPostedEvents () from /opt/qt4/lib/libQtCore.so.4
#57 0x00007f3ded534119 in postEventSourceDispatch () from /opt/qt4/lib/libQtCore.so.4
#58 0x00007f3de866c93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#59 0x00007f3de8670040 in ?? () from /usr/lib64/libglib-2.0.so.0
#60 0x00007f3de86701dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#61 0x00007f3ded533226 in QEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtCore.so.4
#62 0x00007f3dec1833b7 in QGuiEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtGui.so.4
#63 0x00007f3ded4f8b5b in QEventLoop::processEvents () from /opt/qt4/lib/libQtCore.so.4
#64 0x00007f3ded4f8d58 in QEventLoop::exec () from /opt/qt4/lib/libQtCore.so.4
#65 0x00007f3dec61fbb9 in QDialog::exec () from /opt/qt4/lib/libQtGui.so.4
#66 0x00007f3defde4a89 in KFileDialog::getOpenUrl (startDir=@0x7ffff8c76840, filter=@0x7ffff8c76880, parent=0x828c00, caption=@0x7ffff8c76870)
    at /data/development/sources/kde-trunk/kdelibs/kio/kfile/kfiledialog.cpp:476
#67 0x00007f3df0805e6b in KonqMainWindow::slotOpenFile (this=0x828c00) at /data/development/sources/kde-trunk/kdebase/apps/konqueror/src/konqmainwindow.cpp:1427
#68 0x00007f3df080853d in KonqMainWindow::qt_metacall (this=0x828c00, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff8c76bb0)
    at /data/development/build/kde-trunk/kdebase/apps/konqueror/src/konqmainwindow.moc:356
#69 0x00007f3ded515a43 in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#70 0x00007f3ded515d9d in QMetaObject::activate () from /opt/qt4/lib/libQtCore.so.4
#71 0x00007f3dec0b8d0b in QAction::triggered () from /opt/qt4/lib/libQtGui.so.4
#72 0x00007f3dec0bafd5 in QAction::activate () from /opt/qt4/lib/libQtGui.so.4
#73 0x00007f3dec0bb18c in QAction::event () from /opt/qt4/lib/libQtGui.so.4
#74 0x00007f3def71fcd3 in KAction::event (this=0x7490, event=0x7490) at /data/development/sources/kde-trunk/kdelibs/kdeui/actions/kaction.cpp:88
#75 0x00007f3dec0c2817 in QApplicationPrivate::notify_helper () from /opt/qt4/lib/libQtGui.so.4
#76 0x00007f3dec0c2b33 in QApplication::notify () from /opt/qt4/lib/libQtGui.so.4
#77 0x00007f3def7f62db in KApplication::notify (this=0x7ffff8c78e80, receiver=0x9d1c90, event=0x7ffff8c773b0) at /data/development/sources/kde-trunk/kdelibs/kdeui/kernel/kapplication.cpp:307
#78 0x00007f3ded4fc4c8 in QCoreApplication::notifyInternal () from /opt/qt4/lib/libQtCore.so.4
#79 0x00007f3ded5011b1 in QCoreApplication::sendEvent () from /opt/qt4/lib/libQtCore.so.4
#80 0x00007f3dec10b39b in QShortcutMap::dispatchEvent () from /opt/qt4/lib/libQtGui.so.4
#81 0x00007f3dec10c492 in QShortcutMap::tryShortcutEvent () from /opt/qt4/lib/libQtGui.so.4
#82 0x00007f3dec0c2da2 in QApplication::notify () from /opt/qt4/lib/libQtGui.so.4
#83 0x00007f3def7f62db in KApplication::notify (this=0x7ffff8c78e80, receiver=0x9beca0, event=0x7ffff8c77b10) at /data/development/sources/kde-trunk/kdelibs/kdeui/kernel/kapplication.cpp:307
#84 0x00007f3ded4fc4c8 in QCoreApplication::notifyInternal () from /opt/qt4/lib/libQtCore.so.4
#85 0x00007f3dec0d1841 in QCoreApplication::sendSpontaneousEvent () from /opt/qt4/lib/libQtGui.so.4
#86 0x00007f3dec13de80 in qt_sendSpontaneousEvent () from /opt/qt4/lib/libQtGui.so.4
#87 0x00007f3dec17fa6e in QKeyMapper::sendKeyEvent () from /opt/qt4/lib/libQtGui.so.4
#88 0x00007f3dec18109c in QKeyMapperPrivate::translateKeyEvent () from /opt/qt4/lib/libQtGui.so.4
#89 0x00007f3dec154eff in QApplication::x11ProcessEvent () from /opt/qt4/lib/libQtGui.so.4
#90 0x00007f3dec183d56 in x11EventSourceDispatch () from /opt/qt4/lib/libQtGui.so.4
#91 0x00007f3de866c93a in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#92 0x00007f3de8670040 in ?? () from /usr/lib64/libglib-2.0.so.0
#93 0x00007f3de86701dc in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#94 0x00007f3ded533226 in QEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtCore.so.4
#95 0x00007f3dec1833b7 in QGuiEventDispatcherGlib::processEvents () from /opt/qt4/lib/libQtGui.so.4
#96 0x00007f3ded4f8b5b in QEventLoop::processEvents () from /opt/qt4/lib/libQtCore.so.4
#97 0x00007f3ded4f8d58 in QEventLoop::exec () from /opt/qt4/lib/libQtCore.so.4
#98 0x00007f3ded4fcf49 in QCoreApplication::exec () from /opt/qt4/lib/libQtCore.so.4
#99 0x00007f3dec0c2574 in QApplication::exec () from /opt/qt4/lib/libQtGui.so.4
#100 0x00007f3df0831201 in kdemain (argc=<value optimized out>, argv=<value optimized out>) at /data/development/sources/kde-trunk/kdebase/apps/konqueror/src/konqmain.cpp:257
#101 0x00007f3de9814436 in __libc_start_main () from /lib64/libc.so.6
#102 0x00000000004008c9 in _start ()
Comment 1 FiNeX 2008-11-19 20:25:55 UTC
Changed severity to "crash". I hope to have selected only the right bugs (>100) :-)
Comment 2 David Faure 2008-11-29 01:52:22 UTC
A nasty re-entrancy in beginRemoveRows is the cause for the crash.

#0  QSortFilterProxyModelPrivate::source_items_about_to_be_removed (this=0x13d9520, source_parent=@0x7fff513d08b0, start=0, end=63)
    at itemviews/qsortfilterproxymodel.cpp:702                                                                                                                    
#1  0x00007f4145db096d in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved (this=0x13d9520, source_parent=@0x7fff513d08b0, start=0, end=63)            
    at itemviews/qsortfilterproxymodel.cpp:1128                                                                                                                   
#5  0x00007f414669284b in QAbstractItemModel::rowsAboutToBeRemoved (this=0x13d9200, _t1=@0x7fff513d08b0, _t2=0, _t3=63) at .moc/debug-shared/moc_qabstractitemmodel.cpp:164
#6  0x00007f41466360fb in QAbstractItemModel::beginRemoveRows (this=0x13d9200, parent=@0x7fff513d08b0, first=0, last=63) at kernel/qabstractitemmodel.cpp:2124             
#7  0x00007f4147fb2682 in KDirModelPrivate::_k_slotClear (this=0x13d58b0) at /d/kde/src/trunk/kdelibs/kio/kio/kdirmodel.cpp:523                                            
#11 0x00007f4147f9b9b8 in KDirLister::clear (this=0x13d7950) at /d/kde/build/trunk/kdelibs/kio/kdirlister.moc:242                                                               
#12 0x00007f4147fa20f5 in KDirListerCache::forgetDirs (this=0x6ec2c0, lister=0x13d7950) at /d/kde/src/trunk/kdelibs/kio/kio/kdirlister.cpp:437                                  
#13 0x00007f4147fa4169 in KDirListerCache::listDir (this=0x6ec2c0, lister=0x13d7950, _u=@0x7fff513d0ec0, _keep=false, _reload=false)                                            
    at /d/kde/src/trunk/kdelibs/kio/kio/kdirlister.cpp:128                                                                                                                      
#14 0x00007f4147fa5d37 in KDirLister::openUrl (this=0x13d7950, _url=@0x7fff513d0ec0, _flags=@0x7fff513d0e60) at /d/kde/src/trunk/kdelibs/kio/kio/kdirlister.cpp:1810            
#15 0x00007f4134d210aa in KDirOperator::Private::openUrl (this=0x13d6650, url=@0x7fff513d0ec0, flags=@0x7fff513d0f90) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:1098   
#16 0x00007f4134d26d88 in KDirOperator::setUrl (this=0x13d2dd0, _newurl=@0x7fff513d1060, clearforward=false) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:1079            
#17 0x00007f4134d367bb in KFileWidget::setUrl (this=0x10dbc80, url=@0x7fff513d1060, clearforward=false) at /d/kde/src/trunk/kdelibs/kfile/kfilewidget.cpp:1309                  
#18 0x00007f4134d3b970 in KFileWidgetPrivate::setLocationText (this=0x10dd4b0, url=@0x10dd4b8) at /d/kde/src/trunk/kdelibs/kfile/kfilewidget.cpp:1127                           
#19 0x00007f4134d3beea in KFileWidgetPrivate::_k_fileHighlighted (this=0x10dd4b0, i=@0x7fff513d1370) at /d/kde/src/trunk/kdelibs/kfile/kfilewidget.cpp:997
#23 0x00007f4134d1bbc9 in KDirOperator::fileHighlighted (this=0x13d2dd0, _t1=@0x7fff513d1370) at /d/kde/build/trunk/kdelibs/kfile/kdiroperator.moc:299
#24 0x00007f4134d1c605 in KDirOperator::highlightFile (this=0x13d2dd0, item=@0x7fff513d1370) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:1669
#25 0x00007f4134d25e15 in KDirOperator::Private::_k_slotSelectionChanged (this=0x13d6650) at /d/kde/src/trunk/kdelibs/kfile/kdiroperator.cpp:2367
#29 0x00007f4145d7bbdf in QItemSelectionModel::selectionChanged (this=0x1477450, _t1=@0x7fff513d1590, _t2=@0x7fff513d15a0) at .moc/debug-shared/moc_qitemselectionmodel.cpp:144
#30 0x00007f4145d7e1a7 in QItemSelectionModel::emitSelectionChanged (this=0x1477450, newSelection=@0x7fff513d1610, oldSelection=@0x7fff513d1630)
    at itemviews/qitemselectionmodel.cpp:1454
#31 0x00007f4145d8057d in QItemSelectionModel::select (this=0x1477450, selection=@0x7fff513d1720, command=@0x7fff513d1730) at itemviews/qitemselectionmodel.cpp:1013
#32 0x00007f4145d80feb in QItemSelectionModel::select (this=0x1477450, index=@0x15a2460, command=@0x7fff513d1810) at itemviews/qitemselectionmodel.cpp:901
#33 0x00007f4145d7c598 in QItemSelectionModel::setCurrentIndex (this=0x1477450, index=@0x7fff513d1980, command=@0x7fff513d18d0) at itemviews/qitemselectionmodel.cpp:1081
#34 0x00007f4145d321ea in QAbstractItemView::setCurrentIndex (this=0x13f9290, index=@0x7fff513d1980) at itemviews/qabstractitemview.cpp:869
#35 0x00007f4145d327ce in QAbstractItemView::rowsAboutToBeRemoved (this=0x13f9290, parent=@0x7fff513d1de0, start=36, end=36) at itemviews/qabstractitemview.cpp:2887
#36 0x00007f4145d53a66 in QListView::rowsAboutToBeRemoved (this=0x13f9290, parent=@0x7fff513d1de0, start=36, end=36) at itemviews/qlistview.cpp:778
#37 0x00007f4145d3659f in QAbstractItemView::qt_metacall (this=0x13f9290, _c=QMetaObject::InvokeMetaMethod, _id=18, _a=0x7fff513d1c80)
    at .moc/debug-shared/moc_qabstractitemview.cpp:225
#41 0x00007f414669284b in QAbstractItemModel::rowsAboutToBeRemoved (this=0x13d9840, _t1=@0x7fff513d1de0, _t2=36, _t3=36) at .moc/debug-shared/moc_qabstractitemmodel.cpp:164
#42 0x00007f41466360fb in QAbstractItemModel::beginRemoveRows (this=0x13d9840, parent=@0x7fff513d1de0, first=36, last=36) at kernel/qabstractitemmodel.cpp:2124
#43 0x00007f4145daf82c in QSortFilterProxyModelPrivate::remove_proxy_interval (this=0x13d9520, source_to_proxy=@0x1476f70, proxy_to_source=@0x1476f60, proxy_start=36,
    proxy_end=36, proxy_parent=@0x7fff513d1de0, orient=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:453
#44 0x00007f4145dafb99 in QSortFilterProxyModelPrivate::remove_source_items (this=0x13d9520, source_to_proxy=@0x1476f70, proxy_to_source=@0x1476f60,
    source_items=@0x7fff513d1f00, source_parent=@0x7fff513d22b0, orient=Qt::Vertical, emit_signal=true) at itemviews/qsortfilterproxymodel.cpp:434
#45 0x00007f4145db08ce in QSortFilterProxyModelPrivate::source_items_about_to_be_removed (this=0x13d9520, source_parent=@0x7fff513d22b0, start=55, end=55, orient=Qt::Vertical)
    at itemviews/qsortfilterproxymodel.cpp:727
#46 0x00007f4145db096d in QSortFilterProxyModelPrivate::_q_sourceRowsAboutToBeRemoved (this=0x13d9520, source_parent=@0x7fff513d22b0, start=55, end=55)

The current file gets deleted -> KFileDialog selects another one -> the locationbar is updated -> KFileDialog relists the current directory! Not good.
Comment 3 David Faure 2008-11-29 02:46:40 UTC
SVN commit 890378 by dfaure:

Don't reload the current directory when selecting a file in the file dialog
 (and especially not when that file is auto-selected because the previously current file got deleted externally - #173454 crash)
BUG: 173454


 M  +3 -2      kdiroperator.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=890378