[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Lost] [Patch] LostIO - Fix fuer vfstree_delete_node



Kevin Wolf wrote:
>> -    while((node = (vfstree_node_t*) list_get_element_at(parent->children, i++)))
>> +    while((node = (vfstree_node_t*) list_get_element_at(parent->children, i))
>> +        && (node != node_del))
>>      {
>> -        if(node == node_del)
>> -        {
>> -            break;
>> -        }
>> +        i++;
>>      }
>>     
>
> Der bevorzugte Weg für das Iterieren durch eine Liste ist eine 
> for-Schleife. In diesem Fall hätte sie zwar keinen Rumpf, aber irgendwas 
> ist ja immer. ;-)
>   
Schleifen ohne Rumpf sind d00f ;-) Hm ... eigentlich könnte ich einen
teil der Bedingung wieder mit if() break in den Rumpf nehmen *g*

Hier Version 2.
Index: src/modules/lib/lostio/vfstree.c
===================================================================
--- src/modules/lib/lostio/vfstree.c	(Revision 599)
+++ src/modules/lib/lostio/vfstree.c	(Arbeitskopie)
@@ -282,13 +282,8 @@
     int i = 0;
     vfstree_node_t* node;
     
-    while((node = (vfstree_node_t*) list_get_element_at(parent->children, i++)))
-    {
-        if(node == node_del)
-        {
-            break;
-        }
-    }
+    for (i = 0; (node = (vfstree_node_t*) list_get_element_at(parent->children, i))
+        && (node != node_del); i++);
     
     //Abbrechen falls der Knoten nicht gefunden wurde
     if(node == NULL)
@@ -303,6 +298,7 @@
     parent->size--;
 
     //TODO: Kinder-Knoten Loeschen
+    free(node->name);
     free(node);