[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);