[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