FileNode_Delete: Delete child nodes

This commit is contained in:
2015-10-07 23:44:24 +02:00
parent 630119c96c
commit 4d4b72f6be

View File

@@ -50,10 +50,23 @@ FileNode *FileNode_Create() {
} }
void FileNode_Delete(FileNode *fn) { void FileNode_Delete(FileNode *fn) {
FileNode *fileNodeChildAux = fn->child;
FileNode *fileNodeChild = fn->child;
while (fileNodeChild) {
fn->childCount--;
fileNodeChildAux = fileNodeChild;
fileNodeChild = fileNodeChild->next;
fileNodeChildAux->next = NULL;
if (fileNodeChildAux->parent == fn) {
fileNodeChildAux->parent = NULL;
FileNode_Delete(fileNodeChildAux);
}
}
fn->next = _free_filenode; fn->next = _free_filenode;
_free_filenode = fn; _free_filenode = fn;
_n_filenode--; _n_filenode--;
// FIXME: delete childs
} }
void FileNode_AddChild(FileNode *fileNode, FileNode *file2) { void FileNode_AddChild(FileNode *fileNode, FileNode *file2) {