Summary: | Clicking a "non-listed" folder in a file dialog crashes the application (!dirData.listersCurrentlyListing.contains(lister) in kdirlister.cpp:235) | ||
---|---|---|---|
Product: | [Applications] kfile | Reporter: | Dario Andres <andresbajotierra> |
Component: | general | Assignee: | David Faure <faure> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | aroth, fabiolocati, frank78ac |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: |
Description
Dario Andres
2008-12-10 14:43:31 UTC
New info, this doesn't happend when browsing in $HOME folders. This also doesn't happen when entering "/tmp" in the Location text edit This seems to happen only when you haven't browsed at first in your $HOME folders (in the same filedialog "instance"), and you go directly to some Root folder (like /bin or /tmp. Going to /home works without crashing) The assert is: !dirData.listersCurrentlyListing.contains(lister) in kdirlister.cpp:235 (it makes sense that /bin or /tmp aren't currenty listened, but /home does) I've seen the same thing happen in Kate's file open dialog if I open a file which is a few levels deep in the home directory via "kate <FILE>", then click "Open" in the toolbar, then go up a few levels and enter another directory. How many levels I need to go up seems to differ depending on the opened file and its location in the directory structure. A reproducible way to crash Kate for me is: 1. "cd" to the kdelibs/kio/kio directory of the KDE source tree 2. "kate kdirlister.cpp" 3. Click "Open" in toolbar 4. Go up 2 levels, click the "cmake" directory It crashes with the same assert then (trunk rev. 895445; 4.1.3 does not crash). SVN commit 897298 by dfaure: Fix assert due to reentrancy in KDirLister (openUrl -> stop -> emit canceled -> KDirOperator would then do slotLoadingFinished -> setCurrentItem -> expandToUrl -> listDir). Just like r891975, people don't expect canceled to be emitted for internal reasons, only when actually canceling the job from the outside. This assert was added in 891960, so it also fixes the ASSERT: "!listersCurrentlyHolding.contains(kdl)" that sebas was getting in the file dialog. BUG: 177387 M +31 -29 kio/kdirlister.cpp M +3 -3 kio/kdirlister_p.h M +48 -2 tests/kdirlistertest.cpp M +1 -0 tests/kdirlistertest.h WebSVN link: http://websvn.kde.org/?view=rev&revision=897298 *** Bug 180152 has been marked as a duplicate of this bug. *** *** Bug 179827 has been marked as a duplicate of this bug. *** |