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

List:       kde-commits
Subject:    branches/KDE/3.5/kdepim/libkcal
From:       David Jarvie <software () astrojar ! org ! uk>
Date:       2007-07-15 10:51:46
Message-ID: 1184496706.232015.13974.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 688197 by djarvie:

Fix memory leak when reloading calendar

 M  +21 -3     icalformatimpl.cpp  


--- branches/KDE/3.5/kdepim/libkcal/icalformatimpl.cpp #688196:688197
@@ -1982,7 +1982,13 @@
   while (c) {
 //    kdDebug(5800) << "----Todo found" << endl;
     Todo *todo = readTodo(c);
-    if (todo && !cal->todo(todo->uid())) cal->addTodo(todo);
+    if (todo) {
+      if (!cal->todo(todo->uid())) {
+        cal->addTodo(todo);
+      } else {
+        delete todo;
+      }
+    }
     c = icalcomponent_get_next_component(calendar,ICAL_VTODO_COMPONENT);
   }
 
@@ -1991,7 +1997,13 @@
   while (c) {
 //    kdDebug(5800) << "----Event found" << endl;
     Event *event = readEvent(c, ctz);
-    if (event && !cal->event(event->uid())) cal->addEvent(event);
+    if (event) {
+      if (!cal->event(event->uid())) {
+        cal->addEvent(event);
+      } else {
+        delete event;
+      }
+    }
     c = icalcomponent_get_next_component(calendar,ICAL_VEVENT_COMPONENT);
   }
 
@@ -2000,7 +2012,13 @@
   while (c) {
 //    kdDebug(5800) << "----Journal found" << endl;
     Journal *journal = readJournal(c);
-    if (journal && !cal->journal(journal->uid())) cal->addJournal(journal);
+    if (journal) {
+      if (!cal->journal(journal->uid())) {
+        cal->addJournal(journal);
+      } else {
+        delete journal;
+      }
+    }
     c = icalcomponent_get_next_component(calendar,ICAL_VJOURNAL_COMPONENT);
   }
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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