summaryrefslogtreecommitdiff
path: root/Kernel/Memory/AddressSpace.cpp
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-09-05 15:13:20 +0200
committerAndreas Kling <kling@serenityos.org>2021-09-05 15:13:20 +0200
commit83fed5b2de58e7ad9dc2da1f15dd5cf0e052cadd (patch)
tree1c6d3d99d74f40387e78b9dc2e7a8318a6a58877 /Kernel/Memory/AddressSpace.cpp
parent0cf65cf7ec5513dc972f51e2bdc95ca7f983064b (diff)
downloadserenity-83fed5b2de58e7ad9dc2da1f15dd5cf0e052cadd.zip
Kernel: Tidy up Memory::AddressSpace construction
- Return KResultOr<T> in places - Propagate errors - Use TRY()
Diffstat (limited to 'Kernel/Memory/AddressSpace.cpp')
-rw-r--r--Kernel/Memory/AddressSpace.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/Kernel/Memory/AddressSpace.cpp b/Kernel/Memory/AddressSpace.cpp
index c9d8938b22..37298a1764 100644
--- a/Kernel/Memory/AddressSpace.cpp
+++ b/Kernel/Memory/AddressSpace.cpp
@@ -15,14 +15,10 @@
namespace Kernel::Memory {
-OwnPtr<AddressSpace> AddressSpace::try_create(AddressSpace const* parent)
+KResultOr<NonnullOwnPtr<AddressSpace>> AddressSpace::try_create(AddressSpace const* parent)
{
- auto page_directory = PageDirectory::try_create_for_userspace(parent ? &parent->page_directory().range_allocator() : nullptr);
- if (!page_directory)
- return {};
- auto space = adopt_own_if_nonnull(new (nothrow) AddressSpace(page_directory.release_nonnull()));
- if (!space)
- return {};
+ auto page_directory = TRY(PageDirectory::try_create_for_userspace(parent ? &parent->page_directory().range_allocator() : nullptr));
+ auto space = TRY(adopt_nonnull_own_or_enomem(new (nothrow) AddressSpace(page_directory)));
space->page_directory().set_space({}, *space);
return space;
}