diff options
author | Idan Horowitz <idan.horowitz@gmail.com> | 2022-02-15 20:59:25 +0200 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2022-02-16 22:21:37 +0100 |
commit | 316fa0c3f368ead4c1f7f671d7266818439aa484 (patch) | |
tree | d37b7b336064d55a9bfd5f9cecb54db87268d3fe /Kernel/Process.cpp | |
parent | 0218c62be4320c61e006c2b7c68deb1489171764 (diff) | |
download | serenity-316fa0c3f368ead4c1f7f671d7266818439aa484.zip |
AK+Kernel: Specialize Trie for NNOP<KString> and use it in UnveilNode
This let's us avoid the infallible String allocations.
Diffstat (limited to 'Kernel/Process.cpp')
-rw-r--r-- | Kernel/Process.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index fb30fea499..851d5df5bb 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -218,7 +218,8 @@ void Process::unprotect_data() ErrorOr<NonnullRefPtr<Process>> Process::try_create(RefPtr<Thread>& first_thread, NonnullOwnPtr<KString> name, UserID uid, GroupID gid, ProcessID ppid, bool is_kernel_process, RefPtr<Custody> cwd, RefPtr<Custody> executable, TTY* tty, Process* fork_parent) { auto space = TRY(Memory::AddressSpace::try_create(fork_parent ? &fork_parent->address_space() : nullptr)); - auto process = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) Process(move(name), uid, gid, ppid, is_kernel_process, move(cwd), move(executable), tty, UnveilNode { "/"sv, UnveilMetadata(TRY(KString::try_create("/"sv))) }))); + auto unveil_tree = UnveilNode { TRY(KString::try_create("/"sv)), UnveilMetadata(TRY(KString::try_create("/"sv))) }; + auto process = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) Process(move(name), uid, gid, ppid, is_kernel_process, move(cwd), move(executable), tty, move(unveil_tree)))); TRY(process->attach_resources(move(space), first_thread, fork_parent)); return process; } |