[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/3.5/kdelibs/kio/kio
From: Michael Brade <brade () kde ! org>
Date: 2005-11-21 23:02:14
Message-ID: 1132614134.144755.32548.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 482140 by brade:
Revert here, too. The bug doesn't actually seem to be in KDirListerCache but
is rather a problem with library unloading and the order of deletion:
In case of Kicker it somehow manages to delete KDirListerCache first, then the
KDirListers, which obviously won't work. I've mailed Aaron already.
M +5 -7 kdirlister.cpp
--- branches/KDE/3.5/kdelibs/kio/kio/kdirlister.cpp #482139:482140
@@ -415,11 +415,8 @@
url.adjustPath( -1 );
QString urlStr = url.url();
QPtrList<KDirLister> *holders = urlsCurrentlyHeld[urlStr];
- //Q_ASSERT( holders );
- if ( holders )
- {
- holders->removeRef( lister );
- }
+ Q_ASSERT( holders );
+ holders->removeRef( lister );
// remove the dir from lister->d->lstDirs so that it doesn't contain things
// that itemsInUse doesn't. When emitting the canceled signals lstDirs must
@@ -428,8 +425,9 @@
lister->d->lstDirs.remove( lister->d->lstDirs.find( url ) );
DirItem *item = itemsInUse[urlStr];
+ Q_ASSERT( item );
- if ( holders && holders->isEmpty() )
+ if ( holders->isEmpty() )
{
urlsCurrentlyHeld.remove( urlStr ); // this deletes the (empty) holders list
if ( !urlsCurrentlyListed[urlStr] )
@@ -456,7 +454,7 @@
if ( notify )
emit lister->clear( url );
- if ( item && item->complete )
+ if ( item->complete )
{
kdDebug(7004) << k_funcinfo << lister << " item moved into cache: " << url << endl;
itemsCached.insert( urlStr, item ); // TODO: may return false!!
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic