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

List:       kde-commits
Subject:    kdebase/konqueror/sidebar/trees/dirtree_module
From:       Stephan Kulow <coolo () kde ! org>
Date:       2003-05-05 13:27:25
[Download RAW message or body]

CVS commit by coolo: 

do not up cast to invalid classes (I bet this is also the cause of many lan:/ crashes
we've seen)
CCMAIL: 54613-done@bugs.kde.org


  M +9 -5      dirtree_module.cpp   1.25


--- kdebase/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp  #1.24:1.25
@@ -135,9 +135,10 @@ void KonqSidebarDirTreeModule::removeSub
     {
         bool b = m_dictSubDirs.remove( item->externalURL().url(-1) );
-        while (!(((KonqSidebarDirTreeItem*) item)->alias.isEmpty()))
+        KonqSidebarDirTreeItem *ditem = dynamic_cast<KonqSidebarDirTreeItem*>(item);
+        while (ditem && !(ditem->alias.isEmpty()))
         {
-                b = b|m_dictSubDirs.remove( ((KonqSidebarDirTreeItem*) item)->alias.front() );
+                b = b|m_dictSubDirs.remove( ditem->alias.front() );
 
-                ((KonqSidebarDirTreeItem*) item)->alias.pop_front();
+                ditem->alias.pop_front();
         }
         if (!b)
@@ -315,6 +316,9 @@ void KonqSidebarDirTreeModule::slotRedir
         if (item->parent())
         {
-            ((KonqSidebarDirTreeItem*) item)->alias<<oldUrl.url(-1);
-            ((KonqSidebarDirTreeItem*) item)->alias<<newUrl.url(-1);
+            KonqSidebarDirTreeItem* ditem = dynamic_cast<KonqSidebarDirTreeItem*>(item);
+            if (ditem) {
+                ditem->alias<<oldUrl.url(-1);
+                ditem->alias<<newUrl.url(-1);
+            }
         }
         kdDebug(1201) << "Updating url to " << newUrl.prettyURL() << endl;


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

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