summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/UserProcessScheduler.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/src/UserProcessScheduler.cc')
-rw-r--r--dev/kernel/src/UserProcessScheduler.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/dev/kernel/src/UserProcessScheduler.cc b/dev/kernel/src/UserProcessScheduler.cc
index bc2cc8e2..5d983f34 100644
--- a/dev/kernel/src/UserProcessScheduler.cc
+++ b/dev/kernel/src/UserProcessScheduler.cc
@@ -101,8 +101,14 @@ Void USER_PROCESS::Wake(Bool should_wakeup) {
STATIC USER_PROCESS::USER_HEAP_TREE* sched_try_go_upper_heap_tree(
USER_PROCESS::USER_HEAP_TREE* tree) {
+ if (!tree) {
+ return nullptr;
+ }
+
+ tree = tree->MemoryParent;
+
if (tree) {
- tree = tree->MemoryNext;
+ tree = tree->MemoryParent;
if (!tree) {
return nullptr;
@@ -162,7 +168,6 @@ ErrorOr<VoidPtr> USER_PROCESS::New(SizeT sz, SizeT pad_amount) {
entry = entry->MemoryChild;
is_parent = YES;
} else {
- entry = entry->MemoryParent;
entry = sched_try_go_upper_heap_tree(entry);
}
}