From 4f8fb9c70f814de796d61d7d85d4bf133afddafa Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Mon, 21 Apr 2025 17:47:16 +0200 Subject: dev, kernel: Made HeFS use a RB-Tree traversal algorithm. - ran format command. - a variation of a red-black tree traversal, with customized fallback mechanism. Signed-off-by: Amlal El Mahrouss --- dev/kernel/src/FS/HeFS.cc | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) (limited to 'dev/kernel/src/FS/HeFS.cc') diff --git a/dev/kernel/src/FS/HeFS.cc b/dev/kernel/src/FS/HeFS.cc index 8d73b61e..2269896f 100644 --- a/dev/kernel/src/FS/HeFS.cc +++ b/dev/kernel/src/FS/HeFS.cc @@ -141,11 +141,22 @@ namespace Kernel start = dir->fNext; - if (start == 0) - start = dir->fChild; - - if (start == 0) - start = dir->fParent; + if (dir->fColor == kHeFSBlack) + { + if (dir->fParent != 0) + start = dir->fParent; + } + else + { + if (dir->fChild != 0) + start = dir->fChild; + else if (dir->fNext != 0) + start = dir->fNext; + else if (dir->fPrev != 0) + start = dir->fPrev; + else + start = dir->fParent; + } } delete dir; @@ -173,7 +184,7 @@ namespace Kernel NE_UNUSED(mnt); NE_UNUSED(parent_dir_name); NE_UNUSED(node); - + return NO; } } // namespace Detail -- cgit v1.2.3