summaryrefslogtreecommitdiffhomepage
path: root/dev/Kernel/KernelKit/UserProcessScheduler.inl
diff options
context:
space:
mode:
Diffstat (limited to 'dev/Kernel/KernelKit/UserProcessScheduler.inl')
-rw-r--r--dev/Kernel/KernelKit/UserProcessScheduler.inl12
1 files changed, 10 insertions, 2 deletions
diff --git a/dev/Kernel/KernelKit/UserProcessScheduler.inl b/dev/Kernel/KernelKit/UserProcessScheduler.inl
index ecb668fe..6b3b9300 100644
--- a/dev/Kernel/KernelKit/UserProcessScheduler.inl
+++ b/dev/Kernel/KernelKit/UserProcessScheduler.inl
@@ -19,6 +19,12 @@ namespace NeOS
if (!ptr)
return No;
+ if (!this->ProcessMemoryHeap)
+ {
+ kout << "Process Memory is empty.\r";
+ return No;
+ }
+
ProcessMemoryHeapList* entry = this->ProcessMemoryHeap;
while (entry != nullptr)
@@ -29,16 +35,18 @@ namespace NeOS
#ifdef __NE_AMD64__
auto pd = hal_read_cr3();
+
hal_write_cr3(this->VMRegister);
auto ret = mm_delete_heap(entry->MemoryEntry);
hal_write_cr3(pd);
- return ret;
+ return ret == kErrorSuccess;
#else
Bool ret = mm_delete_heap(ptr.Leak().Leak());
- return ret;
+
+ return ret == kErrorSuccess;
#endif
}